# HG changeset patch # User tasneems@symbian.org # Date 1264035086 28800 # Node ID 641b65b1431890cc68e99a61957d8f43901b9fc8 # Parent ec3f1313ae92bc5e3d1455166748a6194cb0952b Added WRT previewer, Mozilla Xulrunner, and Mozilla XP Com. Integrated Xulrunner browser into WRT Previewer. diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/.classpath --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/.classpath Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,7 @@ + + + + + + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/.project --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/.project Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,28 @@ + + + org.symbian.tools.wrttools.editing + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/.settings/org.eclipse.jdt.core.prefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/.settings/org.eclipse.jdt.core.prefs Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,8 @@ +#Tue Jan 12 14:30:42 PST 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/META-INF/MANIFEST.MF --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/META-INF/MANIFEST.MF Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,22 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Editing Support for WRT Tools +Bundle-SymbolicName: org.symbian.tools.wrttools.editing;singleton:=true +Bundle-Version: 0.0.1.qualifier +Bundle-Activator: org.symbian.tools.wrttools.editing.Activator +Bundle-Vendor: Symbian Foundation +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.wst.sse.core;bundle-version="1.1.400", + org.eclipse.wst.sse.ui;bundle-version="1.1.100", + org.eclipse.wst.xml.core;bundle-version="1.1.400", + org.eclipse.wst.xml.ui;bundle-version="1.1.0", + org.eclipse.jface.text;bundle-version="3.5.0", + org.eclipse.wst.html.core;bundle-version="1.1.300", + org.eclipse.wst.html.ui;bundle-version="1.0.400", + org.mozilla.xulrunner;bundle-version="1.9.1";resolution:=optional, + org.eclipse.core.resources;bundle-version="3.5.0", + org.eclipse.wst.css.core;bundle-version="1.1.300", + org.eclipse.wst.jsdt.core;bundle-version="1.0.200" +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/build.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/build.properties Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,5 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/icons/obj16/html-editor.gif Binary file org.symbian.tools.wrttools.editing/icons/obj16/html-editor.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/plugin.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/plugin.xml Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/Activator.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/Activator.java Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,62 @@ +package org.symbian.tools.wrttools.editing; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.symbian.tools.wrttools.editing"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + + public static void log(CoreException e) { + log(e.getLocalizedMessage(), e); + } + + private static void log(String message, Exception e) { + final IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, message, e); + getDefault().getLog().log(status); + } + +} diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/html/HTMLEditor.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/html/HTMLEditor.java Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,68 @@ +/** + * Copyright (c) 2009 Symbian Foundation 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: + * Symbian Foundation - initial contribution. + * Contributors: + * Description: + * Overview: + * Details: + * Platforms/Drives/Compatibility: + * Assumptions/Requirement/Pre-requisites: + * Failures and causes: + */ +package org.symbian.tools.wrttools.editing.html; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.custom.CTabFolder; +import org.eclipse.swt.custom.CTabItem; +import org.eclipse.swt.custom.StackLayout; +import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.layout.FormAttachment; +import org.eclipse.swt.layout.FormData; +import org.eclipse.swt.layout.FormLayout; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swt.widgets.ToolBar; +import org.eclipse.swt.widgets.ToolItem; +import org.eclipse.wst.sse.ui.StructuredTextEditor; + +public class HTMLEditor extends StructuredTextEditor { + @Override + public void createPartControl(Composite parent) { + Composite pane = new Composite(parent, SWT.NONE); + pane.setLayout(new FormLayout()); + CTabFolder tabFolder = new CTabFolder(pane, SWT.NONE); + CTabItem tabItem = new CTabItem(tabFolder, SWT.NONE); + ToolBar toolBar = new ToolBar(tabFolder, SWT.NONE); + tabItem.setControl(toolBar); + tabItem.setText("HTML"); + ToolItem item = new ToolItem(toolBar, SWT.PUSH); + item.setText("Table"); + tabFolder.setSelection(tabItem); + + FormData data = new FormData(); + data.top = new FormAttachment(0, 0); + data.left = new FormAttachment(0, 0); + data.right = new FormAttachment(100, 0); + tabFolder.setLayoutData(data); + + Composite editor = new Composite(pane, SWT.BORDER); + editor.setLayout(new FillLayout()); + data = new FormData(); + data.top = new FormAttachment(tabFolder, 0); + data.left = new FormAttachment(0, 0); + data.right = new FormAttachment(100, 0); + data.bottom = new FormAttachment(100, 0); + editor.setLayoutData(data); + + super.createPartControl(editor); + } +} diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/preview/PreviewPage.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/preview/PreviewPage.java Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,141 @@ +package org.symbian.tools.wrttools.editing.preview; + +import java.io.File; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.Collection; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.swt.SWT; +import org.eclipse.swt.browser.Browser; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.IPageBookViewPage; +import org.eclipse.ui.part.IPageSite; +import org.eclipse.ui.part.Page; +import org.osgi.framework.Bundle; + +public class PreviewPage extends Page implements IPageBookViewPage { + private static final String XUL_RUNNER_PATH_PARAMETER = "org.eclipse.swt.browser.XULRunnerPath"; + + private final IAction refreshAction = new Action("Refresh") { + public void run() { + refresh(); + }; + }; + private final IAction toggleRefresh = new Action("Toggle Refresh", IAction.AS_RADIO_BUTTON) { + public void run() { + toggleRefresh(); + }; + }; + + private final IProject project; + private Browser browser; + private boolean toggleState = true; + + public PreviewPage(IProject project) { + this.project = project; + } + + protected void toggleRefresh() { + toggleState = !toggleState; + toggleRefresh.setChecked(toggleState); + } + + private synchronized void initMozilla() { + if (System.getProperty(XUL_RUNNER_PATH_PARAMETER) == null) { + Bundle bundle = Platform.getBundle("org.mozilla.xulrunner"); //$NON-NLS-1$ + if (bundle != null) { + URL resourceUrl = bundle.getResource("xulrunner"); //$NON-NLS-1$ + if (resourceUrl != null) { + try { + URL fileUrl = FileLocator.toFileURL(resourceUrl); + File file = new File(fileUrl.toURI()); + System.setProperty(XUL_RUNNER_PATH_PARAMETER, file + .getAbsolutePath()); //$NON-NLS-1$ + } catch (IOException e) { + // log the exception + } catch (URISyntaxException e) { + // log the exception + } + } + } + } + } + + + @Override + public void createControl(Composite parent) { + initMozilla(); + browser = new Browser(parent, SWT.MOZILLA); + browser.setUrl(getURL()); + } + + private String getURL() { + return project.getFile("wrt_preview_frame.html").getLocationURI().toASCIIString(); + } + + + @Override + public Control getControl() { + return browser; + } + + @Override + public void setFocus() { + browser.setFocus(); + } + + public void process(Collection files) { + if (needsRefresh(files)) { + getControl().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + if (toggleState) { + refresh(); + } + } + }); + } + } + + private boolean needsRefresh(Collection files) { + for (IFile iFile : files) { + if (iFile.getProject().equals(project)) { + return true; + } + } + return false; + } + + protected void refresh() { + browser.refresh(); + } + + @Override + public void init(IPageSite pageSite) { + super.init(pageSite); + IToolBarManager toolBar = pageSite.getActionBars().getToolBarManager(); + ImageDescriptor image = PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ELCL_SYNCED); + refreshAction.setImageDescriptor(image); + refreshAction.setDescription("Refresh the preview browser"); + refreshAction.setToolTipText("Refresh the preview browser"); + toolBar.add(refreshAction); + + toggleRefresh.setImageDescriptor(image); + toggleRefresh.setDescription("Enable or disable automatic refresh"); + toggleRefresh.setToolTipText("Enable or disable automatic refresh"); + toggleRefresh.setChecked(toggleState); + toolBar.add(toggleRefresh); + } +} diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/preview/PreviewView.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.editing/src/org/symbian/tools/wrttools/editing/preview/PreviewView.java Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,151 @@ +package org.symbian.tools.wrttools.editing.preview; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IResourceChangeEvent; +import org.eclipse.core.resources.IResourceChangeListener; +import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IResourceDeltaVisitor; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.content.IContentType; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.part.IPage; +import org.eclipse.ui.part.MessagePage; +import org.eclipse.ui.part.PageBook; +import org.eclipse.ui.part.PageBookView; +import org.eclipse.wst.css.core.internal.provisional.contenttype.ContentTypeIdForCSS; +import org.eclipse.wst.html.core.internal.provisional.contenttype.ContentTypeIdForHTML; +import org.eclipse.wst.jsdt.core.JavaScriptCore; +import org.symbian.tools.wrttools.editing.Activator; + +public class PreviewView extends PageBookView { + private static final Set CONTENT_TYPES = new TreeSet(Arrays.asList(ContentTypeIdForCSS.ContentTypeID_CSS, ContentTypeIdForHTML.ContentTypeID_HTML, JavaScriptCore.JAVA_SOURCE_CONTENT_TYPE)); + + private static final class ChangedResourcesCollector implements IResourceDeltaVisitor { + public final Collection files = new HashSet(); + @Override + public boolean visit(IResourceDelta delta) throws CoreException { + if (isRelevantResource(delta.getResource())) { + files.add((IFile) delta.getResource()); + } + return true; + } + } + + private final IResourceChangeListener resourceListener = new IResourceChangeListener() { + @Override + public void resourceChanged(IResourceChangeEvent event) { + ChangedResourcesCollector visitor = new ChangedResourcesCollector(); + try { + event.getDelta().accept(visitor); + } catch (CoreException e) { + Activator.log(e); + } + refreshPages(visitor.files); + } + }; + + private Map projectToPage = new HashMap(); + + @Override + protected IPage createDefaultPage(PageBook book) { + MessagePage messagePage = new MessagePage(); + messagePage.setMessage("Open editor to preview WRT widget"); + return messagePage; + } + + protected void refreshPages(Collection files) { + Collection values = projectToPage.values(); + for (PreviewPage page : values) { + page.process(files); + } + } + + public static boolean isRelevantResource(IResource resource) { + if (resource.getType() == IResource.FILE) { + IContentType contentType; + try { + contentType = ((IFile) resource).getContentDescription().getContentType(); + if (contentType != null) { + return CONTENT_TYPES.contains(contentType.getId()); + } + } catch (CoreException e) { + Activator.log(e); + } + } + return false; + } + + @Override + protected PageRec doCreatePage(IWorkbenchPart part) { + // All checks we need were done in isImportant method + IResource resource = (IResource) ((IEditorPart) part).getEditorInput().getAdapter(IResource.class); + + IProject project = resource.getProject(); + PreviewPage page = projectToPage.get(project); + + if (page == null) { + page = new PreviewPage(project); + initPage(page); + page.createControl(getPageBook()); + projectToPage.put(project, page); + } + + return new PageRec(part, page); + } + + @Override + protected void doDestroyPage(IWorkbenchPart part, PageRec pageRecord) { + // We do not need to delete the page + } + + @Override + protected IWorkbenchPart getBootstrapPart() { + IEditorPart activeEditor = getSite().getPage().getActiveEditor(); + if (activeEditor != null) { + if (isImportant(activeEditor)) { + return activeEditor; + } + } + return null; + } + + @Override + protected boolean isImportant(IWorkbenchPart part) { + if (part instanceof IEditorPart) { + IResource resource = (IResource) ((IEditorPart) part).getEditorInput().getAdapter(IResource.class); + if (resource != null) { + return isWrtProject(resource.getProject()); + } + } + return false; + } + + private boolean isWrtProject(IProject project) { + return project.getFile("wrt_preview_frame.html").exists(); + } + + @Override + public void createPartControl(Composite parent) { + super.createPartControl(parent); + ResourcesPlugin.getWorkspace().addResourceChangeListener(resourceListener); + } + + @Override + public void dispose() { + ResourcesPlugin.getWorkspace().removeResourceChangeListener(resourceListener); + super.dispose(); + } +} diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/.classpath --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/.classpath Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,7 @@ + + + + + + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/.project --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/.project Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,28 @@ + + + org.symbian.tools.wrttools.previewer + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/.settings/org.eclipse.jdt.core.prefs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/.settings/org.eclipse.jdt.core.prefs Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,8 @@ +#Wed Jan 13 17:40:14 PST 2010 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/META-INF/MANIFEST.MF --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/META-INF/MANIFEST.MF Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,13 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Previewer +Bundle-SymbolicName: org.symbian.tools.wrttools.previewer;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.symbian.tools.wrttools.previewer.Activator +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime, + org.eclipse.core.resources;bundle-version="3.5.0", + org.eclipse.core.net;bundle-version="1.2.0", + org.mozilla.xpcom;bundle-version="1.9.1" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/build.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/build.properties Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/icons/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/deploy_settings.gif Binary file org.symbian.tools.wrttools.previewer/icons/deploy_settings.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/deploy_widget.gif Binary file org.symbian.tools.wrttools.previewer/icons/deploy_widget.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/error_over.gif Binary file org.symbian.tools.wrttools.previewer/icons/error_over.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/error_ovr.gif Binary file org.symbian.tools.wrttools.previewer/icons/error_ovr.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/exclude_archive.gif Binary file org.symbian.tools.wrttools.previewer/icons/exclude_archive.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/icon.gif Binary file org.symbian.tools.wrttools.previewer/icons/icon.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/icon32.gif Binary file org.symbian.tools.wrttools.previewer/icons/icon32.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/include_archive.gif Binary file org.symbian.tools.wrttools.previewer/icons/include_archive.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/main16.gif Binary file org.symbian.tools.wrttools.previewer/icons/main16.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/package_widget.gif Binary file org.symbian.tools.wrttools.previewer/icons/package_widget.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/upgrade-project-over.gif Binary file org.symbian.tools.wrttools.previewer/icons/upgrade-project-over.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/upgrade_project.gif Binary file org.symbian.tools.wrttools.previewer/icons/upgrade_project.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/upgrade_red.gif Binary file org.symbian.tools.wrttools.previewer/icons/upgrade_red.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/icons/validate_widget.gif Binary file org.symbian.tools.wrttools.previewer/icons/validate_widget.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/jtidy/jtidy-8.0-20060801.131059-3.jar Binary file org.symbian.tools.wrttools.previewer/jtidy/jtidy-8.0-20060801.131059-3.jar has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/plugin.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/plugin.xml Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/css/style.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/css/style.css Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,633 @@ +@charset "utf-8"; +body { + background-image: url(../images/Gradient0Background.png); + background-repeat: repeat-x; + margin: 0px; + font-family: "Nokia Sans", "Nokia Sans SemiBold", "Arial Narrow"; + padding: 0px; + overflow: hidden; +} +.hide{ + display:none; +} +.show{ + display:block; +} + +code{ + background-color: #ffffa6; + color: #000000; + padding: 3px; + display: block; + font-size: 110%; + margin: 3px 0px; +} + +#DisplaySFKWrapper{ + overflow: hidden; +} +#DisplayArea { + margin-right: auto; + margin-left: auto; + overflow: hidden; + +} + +#WidgetArea{ + position: relative; + z-index: 99; +} +#WidgetArea iframe{ + width: 100%; + height: 100%; + border: 0px; + margin-left: auto; + margin-top: auto; +} + +#WidgetArea.hs_portrait{ + background-image: url(../images/device/360x640/hs-portrait.png); + background-repeat: no-repeat; +} + +#WidgetArea.hs_landscape{ + background-image: url(../images/device/360x640/hs-landscape.png); + background-repeat: no-repeat; +} +#WidgetArea.hs_portrait iframe{ + width: 306px; + height: 76px; + margin-left: 26px; + margin-top: 321px; + overflow: hidden !important; +} + +#WidgetArea.hs_landscape iframe{ + width: 306px; + height: 76px; + margin-left: 322px !important; + margin-top: 151px !important; + overflow: hidden !important; +} + +#iframeMask +{ + width: 328px; + height: 100px; + position: absolute; + z-index: 900; + background-image: url(../images/hs-iframeMask.png); + background-repeat: no-repeat; + background-position: top left; +} + +#iframeMask:hover +{ + background-repeat: no-repeat; + background-position: bottom left; +} + + +#WidgetArea.hs_portrait #iframeMask{ + margin-left: 16px !important; + margin-top: 310px !important; +} +#WidgetArea.hs_landscape #iframeMask{ + margin-left: 312px !important; + margin-top: 140px !important; +} + + +#SoftKeys{ + height: 50px; + width: 240px; + margin-right: auto; + margin-left: auto; + margin-top: 10px; +} + +div.clear{ + clear: both; +} +#DeviceDisplayLayout { + background-repeat: no-repeat; + background-position: center center; + margin-right: auto; + margin-left: auto; + margin-top: 0px; + overflow: hidden; +} + +#DeviceDisplayLayout.portrait_240x320 { + background-image: url(../images/device/240x320/Portrait.png); + width: 600px; + height: 536px; +} + +#DeviceDisplayLayout.landscape_240x320 { + background-image: url(../images/device/240x320/Landscape.png); + width: 848px; + height: 408px; +} + +#SoftKeysArea{ + z-index: 101; + position: relative; +/* background-image: url(../images/device/menuKeys-bg.png); + background-repeat: no-repeat; + background-position: center top; +*/ + background-color: #666666; +} + +#SoftKeysArea ul{ + list-style: none; + margin: 0px; + padding: 0px; + +} + +#SoftKeysArea ul li{ + margin: 0px; + font-weight: bold; + font-size: 15px; + float: left; + padding: 5px; +} + + +#SoftKeysArea ul li a{ + color: #FFFFFF; + text-decoration: none; + display: block; +} + +li#RskLabel{ + text-align: right; +} + +#MenuItemsArea{ + z-index: 100; + display: none; +} + +#MenuItemsArea ul{ + margin: 0px; + padding: 5px; + list-style-position: inside; + list-style-image: none; + list-style-type: none; + background-color: #CCCCCC; +} + +#MenuItemsArea ul li{ + font-size: 13px; + font-weight: bold; +} + +#MenuItemsArea li.active{ + background-color: #75ea00; +} + +#MenuItemsArea a{ + color: #000; + text-decoration: none; + display: block; + padding: 5px; + height: 14px; +} +#MenuItemsArea a:hover{ + background-color: #75ea00; +} + +#MenuItemsArea a.subMenuItem{ + background-image: url(../images/sub-menu-arrow.png); + background-repeat: no-repeat; + background-position: right 0px; +} + +#MenuItemsArea a.subMenuItem:hover{ + background-position: right -20px; +} +#MenuItemsArea a.subMenuItem:active{ + background-position: right -40px; +} + +#MenuItemsArea li.active a.subMenuItem{ + background-position: right -20px; +} +div#IconArea{ + display: none; + font-size: 0.9em; + font-weight: bold; + background-repeat: no-repeat; +} + +div#IconArea.portrait240x320{ + background-image: url(../images/statusBar_240x320.png); +} +div#IconArea.landscape240x320{ + background-image: url(../images/statusBar_320x240.png); +} + +div#IconArea.portrait320x240{ + background-image: url(../images/statusBar_320x240.png); +} +div#IconArea.landscape320x240{ + background-image: url(../images/statusBar_240x320.png); +} + +div#IconArea.portrait360x640{ + background-image: url(../images/statusBar_360x640.png); +} +div#IconArea.landscape360x640{ + background-image: url(../images/statusBar_640x360.png); +} + +div#IconArea.landscape800x352{ + background-image: url(../images/statusBar_800x352.png); +} + + +div.IconFile{ + margin-left: auto; + margin-right: auto; + text-align: center; + padding: 20px; +} + +div.IconFile:hover{ + background-image: url(../images/IconArea-hover.png); + background-position: center center; + background-repeat: no-repeat; +} + +div.IconFile p{ + margin: 0px; +} + + + +p.highlight span{ + background-color: #fbf7a2; + font-weight: normal; + font-size: 0.8em; + padding: 3px; +} + +/* + preferences CSS +*/ + +div#PreferencesBtn{ + width: 75px; + height: 85px; + background-image: url(../images/settings-icon.png); + position: absolute; + top: 10px; + left: 10px; + background-position: left bottom; + z-index: 200; +} + +div#PreferencesBtn:hover{ + background-position: left top; +} + +div#loaderDiv{ + padding: 10px; + font-size: 1.1em; + position: absolute; + top: 0px; + right: 0px; + display: none; + z-index: 202; +} + +div#loaderDiv.green{ + background-color: #5abd2b; + color: #FFFFFF; +} + +div#loaderDiv.yellow{ + background-color: #ffff00; + color: #000000; +} + +div#orientationIcon{ + background-image: url(../images/normal-orientation-icon.png); + background-repeat: no-repeat; + width: 191px; + height: 72px; + float: left; + position: absolute; + left: 10px; + top: 0px; + display: none; +} +div#orientationIcon:hover{ + background-image: url(../images/active-orientation-icon.png); +} + +table{ + border-top: 1px solid #808080; + border-left: 1px solid #808080; +} + +table a.link{ + background-color: #20c41c; + color: #ffffff; + font-weight: bold; + border: 1px solid #4e872c; + padding: 3px 2px; + text-decoration: none; + font-size: 80%; +} + +table th, table td{ + padding: 6px 5px; + border-bottom: 1px solid #808080; + border-right: 1px solid #808080; + font-size: 0.9em; +} +table th{ + width: 150px; + text-align: left; + background-image: url(../images/th-bg-gradient.png); + background-repeat: repeat-x; + background-position: left bottom; +} + +#NotificationDiv p{ + color: #ffffff; + font-size: 95%; + padding: 5px; +} + +strong{ + color: #eee46c; +} + +#BrowserNotificationBar{ + z-index: 2000; + background-color: #f2eb8e; + border-bottom: 2px solid #f0d25e; + display: none; + position: absolute; + left: 0; + top: 0; + width: 100%; + font-size: 80%; + font-weight: bolder; + text-align: right; + margin: 0px; + opacity: 0.9; +} +#BrowserNotificationBar a{ + height: 10px; + width: 10px; + float: right; + background-image: url(../images/BrowserNotificationBar-Toogle.gif); + background-position: 0px -10px; + margin : 4px 15px 0px 10px; + cursor: hand; + overflow: hidden; +} +/* + Event Triggering CSS +*/ + +h2{ + font-size: 120%; + margin: 3px 0px; + padding: 0px; +} + +#tabs-1, #tabs-2{ + height: 223px; + overflow: auto; +} + +#connect-charger-icon, #dis-connect-charger-icon{ + background-repeat: no-repeat; + background-position: left top; + width: 165px; + height: 36px; + margin: 5px auto; +} + +#connect-charger-icon{ + background-image: url(../images/connect-charger-icon.png); +} + +#dis-connect-charger-icon{ + background-image: url(../images/dis-connect-charger-icon.png); +} + +#connect-charger-icon:hover, #dis-connect-charger-icon:hover{ + background-position: left bottom; +} + +div#event-battery, div#event-messaging, div#event-memory{ + float: left; + width: 150px; + height: 50px; + background-position: left top; + margin: 10px; + background-repeat: no-repeat; + border: 1px solid #6f6f6f; +} + +div#event-battery.active:hover, div#event-messaging.active:hover, div#event-memory.active:hover{ + background-position: 0px -50px; + border: 1px solid #75ea4f; +} + +div#event-messaging.inactive, div#event-memory.inactive{ + background-position: 0px -100px; + border: 1px solid #676767; +} + + +div#event-battery{ + background-image: url(../images/battery-icon.png); +} + +div#event-messaging{ + background-image: url(../images/messaging-icon.png); +} + +div#event-memory{ + background-image: url(../images/memory-icon.png); +} + +div.ui-panel{ + height:30px; +} + +a.ui-button, a.ui-button-fixed { + background:#555555 url(../script/jquery-ui/css/ui-darkness/images/555555_40x100_textures_02_glass_20.png) repeat-x scroll 0 50%; + border:1px solid #666666; + color:#EEEEEE; + cursor:pointer; + font-size:0.9em; + font-weight:bolder; + line-height:1.4em; + margin:0.5em 8px 0.5em 0; + padding:0.2em 0.6em 0.3em; + text-decoration: none; +} +a.ui-button:hover, a.ui-button-fixed:hover { + background:#0078A3 url(../script/jquery-ui/css/ui-darkness/images/0078a3_40x100_textures_02_glass_40.png) repeat-x scroll 0 50%; + border:1px solid #4bd94b; + color:#FFFFFF; +} + +a.ui-button-fixed{ + float: left; + padding: 0.4em 0.6em 0.8em; + text-align: center; + width: 145px !important; +} + +div#slider-value-panel{ + text-align: center; + margin-top: 10px; +} + +div#slider-value-panel span{ + padding: 3px; + background:#0078A3 url(../script/jquery-ui/css/ui-darkness/images/0078a3_40x100_textures_02_glass_40.png) repeat-x scroll 0 50%; + border:1px solid #4bd94b; + color:#FFFFFF; + font-weight: bolder; +} + + +/* + Console UI +*/ +#preview-ui-top{ + overflow:auto; +} + +#preview-ui-bottom{ + overflow:hidden; + display: none; +} +#preview-ui-bottom-header{ + background-color: #aeaeae; + background-image: url(../images/console-icon.gif); + background-repeat: repeat-x; + background-position: 0px -28px; +} +span#Console-Toggle-Button{ + height: 9px; + width: 15px; + float: right; + background-repeat: no-repeat; + margin : 12px 8px 0px 0px; + cursor: hand; +} + +span#Console-Toggle-Button.open{ + background-position: 0px 0px; + background-image: url(../images/console-close-icon.png); +} + +span#Console-Toggle-Button.open:hover{ + background-position: 0px -9px; +} + +span#Console-Toggle-Button.open:active{ + background-position: 0px -18px; +} + + +span#Console-Toggle-Button.close{ + background-position: 0px 0px; + background-image: url(../images/console-open-icon.png); +} + +span#Console-Toggle-Button.close:hover{ + background-position: 0px -9px; +} + +span#Console-Toggle-Button.close:active{ + background-position: 0px -18px; +} + + +span#Console-Clear-Button{ + height: 16px; + width: 39px; + float: right; + background-image: url(../images/console-clear-button.png); + background-repeat: no-repeat; + margin : 10px 10px 0px 0px; + cursor: hand; +} +span#Console-Clear-Button:hover{ + background-position: -0px -16px; +} + +#preview-ui-bottom-body{ + overflow:auto; + background-color: #ffffff; + display: none; +} + +#preview-ui-bottom-body p{ + font-family: "Courier New", Courier, monospace; + font-size: 11px; + padding: 2px 5px; + border-bottom: 1px solid silver; + margin: 0px; +} + +#preview-ui-bottom-body p.log{ + +} + +#preview-ui-bottom-body p.info{ + background-image: url(../images/infoIcon.png); + background-repeat: no-repeat; + background-position: 5px center; + padding-left: 26px; +} +#preview-ui-bottom-body p.warn{ + background: #00ffff url(../images/warningIcon.png); + background-repeat: no-repeat; + background-position: 5px center; + padding-left: 26px; +} +#preview-ui-bottom-body p.error{ + background: #ffffe0 url(../images/errorIcon.png); + background-repeat: no-repeat; + background-position: 5px center; + padding-left: 26px; + color: #ff0000; +} + + +#preview-ui-bottom-header div{ + float: left; + margin: 9px; + color: #ffffff; + font-size: 11px; + font-weight: bolder; + font-family: "Arial"; +} + + +span#wrt-help{ + height: 28px; + width: 28px; + float: right; + background-repeat: no-repeat; + background-image: url(../images/wrt-help-icon.png); +} + +span#wrt-help:hover{ + background-position: -28px 0px; +} \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/appManager_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/appManager_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,99 @@ +/** + * SAPI Sample Data - AppManager + */ + + +(function(){ + + var data_apps = [ + { + "Path": "C:\\private\\10282822\\com.nokia.forum.widget.accuwidget\\AccuWidget\\accuwidget.xhtml", + "Uid": "0x2000dad2", + "Caption": "AccuWidget", + "ShortCaption": "AccuWidget" + }, { + "Path": "C:\\private\\10282822\\com.nokia.wrt.tools.sapi.CreatorWidget\\CreatorWidget\\index.html", + "Uid": "0x2000dadb", + "Caption": "Creator Widget", + "ShortCaption": "Creator Widget" + },{ + "Path": "Z:\\sys\\bin\\lcapp.exe", + "Uid": "0x10283139", + "Caption": "Location", + "ShortCaption": "Location" + }, { + "Path": "Z:\\sys\\bin\\javadrmmanager.exe", + "Uid": "0x1028246e", + "Caption": "javadrmmanager", + "ShortCaption": "javadrmmanager" + }, { + "Path": "Z:\\sys\\bin\\iaupdater.exe", + "Uid": "0x2000f85d", + "Caption": "iaupdater", + "ShortCaption": "iaupdater" + }, { + "Path": "Z:\\sys\\bin\\iaupdate.exe", + "Uid": "0x2000f85a", + "Caption": "App. update", + "ShortCaption": "App. update" + }, { + "Path": "Z:\\sys\\bin\\SAFlash.exe", + "Uid": "0x101fd693", + "Caption": "Flash Lite", + "ShortCaption": "Flash Lite" + }, { + "Path": "Z:\\sys\\bin\\eswt.exe", + "Uid": "0x101f9516", + "Caption": "eswt", + "ShortCaption": "eswt" + }, { + "Path": "Z:\\sys\\bin\\DRMRightsManager.exe", + "Uid": "0x101f85c7", + "Caption": "Licences", + "ShortCaption": "Licences" + }, { + "Path": "Z:\\sys\\bin\\RoapApp.exe", + "Uid": "0x10008d64", + "Caption": "Licence download", + "ShortCaption": "Licence download" + }, { + "Path": "Z:\\sys\\bin\\DdViewer.exe", + "Uid": "0x10008d3f", + "Caption": "Download", + "ShortCaption": "Download" + }, { + "Path": "Z:\\sys\\bin\\MediaGallery2.exe", + "Uid": "0x101f8599", + "Caption": "Gallery", + "ShortCaption": "Gallery" + }, { + "Path": "Z:\\sys\\bin\\CodViewer.exe", + "Uid": "0x10008d4a", + "Caption": "Download", + "ShortCaption": "Download" + }]; + + + + var data_packages = [{ + "PackageName": "Mobiola Screen Capture", + "Uid": "0x2000be16", + "Version": "3:0", + "Vendor": "Warelex LLC", + "Drive": "E" + }, { + "PackageName": "Facebook", + "Uid": "0x20011184", + "Version": "1:0", + "Vendor": "Nokia Corporation", + "Drive": "C" + }]; + + + /** + * register data! + */ + device.implementation.loadData('Service.AppManager', 'Application', data_apps); + device.implementation.loadData('Service.AppManager', 'UserInstalledPackage', data_packages); + +})() diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/calendar_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/calendar_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,136 @@ +/** + * SAPI Sample Data - Calendar + */ + + +(function(){ + + + var data_entries = [{ + "Type": "ToDo", + "Summary": "Face head on my problems", + "Description": "Face head on my problems", + "EndTime": "Wednesday, 15 April, 2009 12:00:00 am", + "id": "ihiwykmkjzcowqEnnEbeDnJpzWhPWrgNpNgudjdwgPfisvvQscuibwwSmgkdhdiBzIfyqvfIBmiYavfklygBssoKmWpJuxftbkdLsfmuwudczlJikohlFbQecaMlbaPnwyddzqXcjrhldXignjYtWyfqfzbpcxlH", + "LocalId": "34", + "Priority": 1, + "Replication": "Open" + }, { + "Type": "ToDo", + "Summary": "Believe myself first", + "Description": "Believe myself first", + "EndTime": "Sunday, 22 March, 2009 12:00:00 am", + "AlarmTime": "Saturday, 21 March, 2009 11:30:00 pm", + "id": "rjutskelXlDdoaebCyPzjopwgxMxluuLesqqsrykvIxrFLbxvuhBImBbhqwlSRfFtvWktkrvqpjfvxCoBxpsDlbgugvqjudregvyoebgtihRiSarcnryZovfwyHTcmXqZdjdrVPvSGnqroYgXdtpafqxTzrnkMKpzLihcxfaxwmdrkuGifsgbglhyfwqmtiPyzpeuxvKFfnrmhaqnrUarustDySMgKakjpFpkhtbonmTyBvhlzv", + "LocalId": "35", + "Priority": 1, + "Replication": "Open" + }, { + "Type": "Meeting", + "Summary": "Meeting with the professor", + "Description": "Meeting with the professor", + "StartTime": "Monday, 23 March, 2009 11:56:00 am", + "EndTime": "Monday, 23 March, 2009 2:31:00 pm", + "AlarmTime": "Monday, 23 March, 2009 11:01:00 am", + "InstanceStartTime": "Monday, 23 March, 2009 11:56:00 am", + "InstanceEndTime": "Monday, 23 March, 2009 2:31:00 pm", + "id": "hifXqeBiUOlelbioirmeoniClarsiybNhNxdlQbqBzcngmhxtzlRoebdeYxupjaxnapugxrKnmhGjzdwtChVydzwOdwrHPokjqjvyaPwbqCjdtpukjcoyjdkjkkrndZzwjCYQPxgvereyuktnOtIndpoyimtjzPzEnkxCfzhxaDTvUgclfpsfbtgtvwk", + "LocalId": "31", + "Priority": 0, + "Organizer": { + "CommonName": "Frideswide Farprington", + "Address": "Christian.Wilbar@Melleva.com" + }, + "Replication": "Open" + }, { + "Type": "Meeting", + "Summary": "Work issues", + "Description": "Work issues", + "StartTime": "Saturday, 28 March, 2009 1:22:00 am", + "EndTime": "Saturday, 28 March, 2009 7:56:00 am", + "AlarmTime": "Saturday, 28 March, 2009 12:49:00 am", + "InstanceStartTime": "Saturday, 28 March, 2009 1:22:00 am", + "InstanceEndTime": "Saturday, 28 March, 2009 7:56:00 am", + "id": "symstNdkqdznkcettruqqyefdjkzikeBXmcamanzrygnusjyFYheprwaxksxzrqsdbnkTqemtsqqZbqnbbircyqtohmymWvqEc", + "LocalId": "30", + "Priority": 0, + "Organizer": { + "CommonName": "Margery Worthley", + "Address": "Grace.Wilbar@Peger.com" + }, + "Replication": "Open" + }, { + "Type": "Reminder", + "Summary": "Remeber to harvest corn field", + "Description": "Remeber to harvest corn field", + "StartTime": "Thursday, 02 April, 2009 12:00:00 am", + "AlarmTime": "Wednesday, 01 April, 2009 11:52:00 pm", + "id": "uwtxgvTsowwGbnsgboEprwxvmihUkkDczxeohsnsXpUzUaHgjBJmjhpfOjaoyvRrjwIkgafrcszvbCSooutemfhejtyfonHviomgouimvPtexgdWmzDgGP", + "LocalId": "36", + "Priority": 0, + "Replication": "Open" + }, { + "Type": "Reminder", + "Summary": "Remeber to wax cross country skiis", + "Description": "Remeber to wax cross country skiis", + "StartTime": "Monday, 06 April, 2009 12:00:00 am", + "AlarmTime": "Sunday, 05 April, 2009 11:44:00 pm", + "id": "ivunsxcjmrsdaKkdtbqpskSIGIFOftMLwTuvCbiHmrkJnxdZgsapbqhoxNrhsbheyztgyOfvdqGrIlawVrvEwnYjnzoSlyimcxlKcSqetcruzf", + "LocalId": "37", + "Priority": 0, + "Replication": "Open" + }, { + "Type": "DayEvent", + "Summary": "Go the bank", + "Description": "Go the bank", + "StartTime": "Monday, 06 April, 2009 6:16:00 pm", + "EndTime": "Monday, 06 April, 2009 7:19:00 pm", + "AlarmTime": "Monday, 06 April, 2009 6:07:00 pm", + "id": "QvcvlpXpflemwqjtniukLPsjkSengqBEfajerjclkrwysdy", + "LocalId": "33", + "Priority": 0, + "Replication": "Open" + }, { + "Type": "DayEvent", + "Summary": "School day", + "Description": "School day", + "StartTime": "Thursday, 16 April, 2009 5:27:00 pm", + "EndTime": "Thursday, 16 April, 2009 9:39:00 pm", + "AlarmTime": "Thursday, 16 April, 2009 4:35:00 pm", + "id": "zmHupjqghnkEepdfghSCcsmFnrrducaqEyqyetauTcmxscSptpchgimxeEnOzxdiyEldyrikjmxvgzibauvjQfdbzgoumlVyAjqfhqlgpTtbiffqdzgpzWrquiyAdidvccvffzZxmpgjjbjUCqyeuBiikiedtclqabbsdazAbb", + "LocalId": "32", + "Priority": 0, + "Replication": "Open" + }]; + + + + name = "C:MyCalendar"; + id = 200; + localId = 20; + +/** start data block **/ +var data2 = []; + + for (var i = 1; i <= 10; i++) { + data2.push({ + Type : 'Meeting', + id : id++, + LocalId : localId++, + CalendarName: name, + StartTime : new Date('3/'+i+'/2009'), + Endtime : new Date('3/'+(1+i)+'/2009'), + Description : 'sample meeting ' + i + }); + } +/** end data block **/ + + + + /** + * register data! + */ + device.implementation.loadData('Service.Calendar', 'C:Calendar', data_entries); + device.implementation.loadData('Service.Calendar', 'C:MyCalendar', data2); + +})() diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/contact_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/contact_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,158 @@ +/** + * SAPI Sample Data - Contacts + */ + +(function(){ + + + var data_contacts = [{ + "id": "", + "FirstName": { + "Label": "First name", + "Value": "Alice" + }, + "LastName": { + "Label": "Last name", + "Value": "Moller" + }, + "LandPhoneGen": { + "Label": "Telephone", + "Value": "0230328732" + }, + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + } + }, { + "id": "", + "FirstName": { + "Label": "First name", + "Value": "Amy" + }, + "LastName": { + "Label": "Last name", + "Value": "Kammer" + }, + "LandPhoneGen": { + "Label": "Telephone", + "Value": "0492303652" + }, + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + } + }, { + "id": "", + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + }, + "LastName": { + "Label": "Last name", + "Value": "Bierman" + }, + "FirstName": { + "Label": "First name", + "Value": "Michael" + }, + "MobilePhoneGen": { + "Label": "Mobile", + "Value": "4084256071" + } + }, { + "id": "", + "FirstName": { + "Label": "First name", + "Value": "Ralph" + }, + "LastName": { + "Label": "Last name", + "Value": "Jacmor" + }, + "LandPhoneGen": { + "Label": "Telephone", + "Value": "0432443343" + }, + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + } + }, { + "id": "", + "FirstName": { + "Label": "First name", + "Value": "Robert" + }, + "LastName": { + "Label": "Last name", + "Value": "Richards" + }, + "LandPhoneGen": { + "Label": "Telephone", + "Value": "+4443433434" + }, + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + } + }, { + "id": "", + "FirstName": { + "Label": "First name", + "Value": "Ursula" + }, + "LastName": { + "Label": "Last name", + "Value": "West" + }, + "LandPhoneGen": { + "Label": "Telephone", + "Value": "0213443434" + }, + "SyncClass": { + "Label": "Synchronisation", + "Value": "private" + } + }]; + + + var data_groups = [{ + "id": "", + "GroupLabel": "TestGroupName" + }, { + "id": "", + "GroupLabel": "Silver club #5488", + "Contents": ["", "", "", "", "", ""] + }, { + "id": "", + "GroupLabel": "The buddies #9926" + }, { + "id": "", + "GroupLabel": "Football team #5940", + "Contents": ["", ""] + }, { + "id": "", + "GroupLabel": "Science group #2742", + "Contents": ["", "", "", "", "", ""] + }, { + "id": "", + "GroupLabel": "Rockers #3062", + "Contents": ["", "", "", "", "", ""] + }]; + + + var data_database = [{ + "DBUri": "cntdb://c:contacts.cdb" + },{ + "DBUri": "sim://global_adn" + }]; + + + /** + * register data! + */ + device.implementation.loadData('Service.Contact', 'Contact', data_contacts); + device.implementation.loadData('Service.Contact', 'Group', data_groups); + device.implementation.loadData('Service.Contact', 'Database', data_database); + +})() diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/landmarks_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/landmarks_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,339 @@ +/** + * SAPI Sample Data - Landmark + */ + +(function(){ + + var data_landmark = [{ + "id":"47", + "LandmarkName":"Best food ever!", + "LandmarkPosition":{ + "Latitude":-17.5423, + "Longitude":-54.8163, + "Altitude":82, + "HAccuracy":2, + "VAccuracy":4 + }, + "CategoryInfo":["1"], + "LandmarkDesc":"Place looks really nice.", + "LandmarkFields":{ + "Country":"Finland", + "City":"Tokyo", + "AreaCode":"FI-70100", + "Street":"Plains Road", + "Telephone":"+4443433434" + } + },{ + "id":"44", + "LandmarkName":"Food store", + "LandmarkPosition":{ + "Latitude":65.4233, + "Longitude":-93.4225, + "Altitude":54, + "HAccuracy":1, + "VAccuracy":1 + }, + "CategoryInfo":["10"], + "LandmarkDesc":"Words are not enough to describe this landmark", + "LandmarkFields":{ + "Country":"Finland", + "City":"St. Michel", + "AreaCode":"11233", + "Street":"McKenzie Avenue", + "Telephone":"0432443343" + } + },{ + "id":"40", + "LandmarkName":"Hospital", + "LandmarkPosition":{ + "Latitude":-2.4616, + "Longitude":51.4958, + "Altitude":43, + "HAccuracy":3, + "VAccuracy":3 + }, + "CategoryInfo":["13"], + "LandmarkDesc":"Place looks really nice.", + "LandmarkFields":{ + "Country":"United States of America", + "City":"London", + "AreaCode":"11233", + "Street":"Pukershire Avenue", + "Telephone":"0565645455" + } + },{ + "id":"45", + "LandmarkName":"John’s home", + "LandmarkPosition":{ + "Latitude":36.9077, + "Longitude":134.4066, + "Altitude":42, + "HAccuracy":3, + "VAccuracy":5 + }, + "CategoryInfo":["14"], + "LandmarkDesc":"This is my favorite place", + "LandmarkFields":{ + "City":"Los Angeles", + "AreaCode":"00310", + "Street":"McKenzie Lane", + "Telephone":"+35854553456", + "Country":"Japan" + } + },{ + "id":"48", + "LandmarkName":"John’s home", + "LandmarkPosition":{ + "Latitude":17.1817, + "Longitude":113.4183, + "Altitude":29, + "HAccuracy":3, + "VAccuracy":2 + }, + "CategoryInfo":["3"], + "LandmarkDesc":"Words are not enough to describe this landmark", + "LandmarkFields":{ + "Country":"Norway", + "City":"St. Petersburg", + "AreaCode":"FI-70100", + "Street":"Windsor Road", + "Telephone":"+4465665456" + } + },{ + "id":"49", + "LandmarkName":"Nice beach", + "LandmarkPosition":{ + "Latitude":-22.0327, + "Longitude":-33.0193, + "Altitude":57, + "HAccuracy":1, + "VAccuracy":0 + }, + "CategoryInfo":["7"], + "LandmarkDesc":"This is my favorite place", + "LandmarkFields":{ + "Telephone":"+35854553456", + "Country":"Finland", + "City":"Bangkok", + "AreaCode":"00310", + "Street":"Highland Avenue Extension" + } + },{ + "id":"42", + "LandmarkName":"Nice view", + "LandmarkPosition":{ + "Latitude":-1.5979999999999999, + "Longitude":177.5871, + "Altitude":23, + "HAccuracy":1, + "VAccuracy":4 + }, + "CategoryInfo":["5"], + "LandmarkDesc":"Words are not enough to describe this landmark", + "LandmarkFields":{ + "Country":"Thailand", + "City":"St. Petersburg", + "AreaCode":"00310", + "Street":"Pukershire Avenue", + "Telephone":"0435445454" + } + },{ + "id":"41", + "LandmarkName":"Summer cottage", + "LandmarkPosition":{ + "Latitude":-80.6438, + "Longitude":78.5627, + "Altitude":60, + "HAccuracy":1, + "VAccuracy":4 + }, + "CategoryInfo":["11"], + "LandmarkDesc":"Place looks really nice.", + "LandmarkFields":{ + "Country":"Thailand", + "City":"Havana", + "AreaCode":"99002", + "Street":"Eastman Street", + "Telephone":"+4465665456" + } + },{ + "id":"43", + "LandmarkName":"Summer cottage", + "LandmarkPosition":{ + "Latitude":23.6319, + "Longitude":-141.5323, + "Altitude":60, + "HAccuracy":2, + "VAccuracy":2 + }, + "CategoryInfo":["1"], + "LandmarkDesc":"This is my favorite place", + "LandmarkFields":{ + "Country":"Norway", + "City":"Nairobi", + "AreaCode":"FI-70100", + "Street":"Windsor Avenue", + "Telephone":"0785434444" + } + },{ + "id":"46", + "LandmarkName":"Work place", + "LandmarkPosition":{ + "Latitude":1.7755, + "Longitude":66.132, + "Altitude":36, + "HAccuracy":5, + "VAccuracy":5 + }, + "CategoryInfo":["3"], + "LandmarkDesc":"Delicious strawberries sold here. Must visit again sometime!", + "LandmarkFields":{ + "Country":"Kenya", + "City":"Havana", + "AreaCode":"99002", + "Street":"Barnes Street", + "Telephone":"0342303777" + } + }]; + + + var data_category = [{ + "id":"1", + "CategoryName":"Accommodation", + "GlobalId":"3000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16384, + "IconMaskIndex":16385 + },{ + + "id":"2", + "CategoryName":"Businesses", + "GlobalId":"6000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16386, + "IconMaskIndex":16387 + },{ + "id":"3", + "CategoryName":"Telecommunications", + "GlobalId":"9000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16388, + "IconMaskIndex":16389 + },{ + "id":"4", + "CategoryName":"Education", + "GlobalId":"12000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16390, + "IconMaskIndex":16391 + },{ + "id":"5", + "CategoryName":"Entertainment", + "GlobalId":"15000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16392, + "IconMaskIndex":16393 + },{ + "id":"6", + "CategoryName":"Food and drink", + "GlobalId":"18000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16394, + "IconMaskIndex":16395 + },{ + "id":"7", + "CategoryName":"Geographical locations", + "GlobalId":"21000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16396, + "IconMaskIndex":16397 + },{ + "id":"8", + "CategoryName":"Outdoor activities", + "GlobalId":"24000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16398, + "IconMaskIndex":16399 + },{ + "id":"9", + "CategoryName":"People", + "GlobalId":"27000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16400, + "IconMaskIndex":16401 + },{ + "id":"10", + "CategoryName":"Public services", + "GlobalId":"30000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16402, + "IconMaskIndex":16403 + },{ + "id":"11", + "CategoryName":"Places of worship", + "GlobalId":"33000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16404, + "IconMaskIndex":16405 + },{ + "id":"12", + "CategoryName":"Shopping", + "GlobalId":"36000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16406, + "IconMaskIndex":16407 + },{ + "id":"13", + "CategoryName":"Sightseeing", + "GlobalId":"39000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16408, + "IconMaskIndex":16409 + },{ + "id":"14", + "CategoryName":"Sports", + "GlobalId":"42000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16410, + "IconMaskIndex":16411 + },{ + "id":"15", + "CategoryName":"Transport", + "GlobalId":"45000", + "IconFile":"\resource\apps\eposlmglcategories.mif", + "IconIndex":16412, + "IconMaskIndex":16413 + },{ + "id":"24", + "CategoryName":"All places", + "IconFile":"Z:\resource\apps\smart2go.mif", + "IconIndex":16384, + "IconMaskIndex":16385 + },{ + "id":"25", + "CategoryName":"Nokia maps", + "IconFile":"Z:\resource\apps\LmkUi.mif", + "IconIndex":16402, + "IconMaskIndex":16403 + }]; + + var data_database = [{ + "DatabaseURI":"file://C:eposlm.ldb", + "DatabaseName":"", + "DbProtocol":"file", + "DbActive":false, + "DbSize":226, + "DbDrive":"C", + "DbMedia":9 + }]; + + + /** + * register data! + */ + device.implementation.loadData('Service.Landmarks', 'Landmark', data_landmark); + device.implementation.loadData('Service.Landmarks', 'Category', data_category); + device.implementation.loadData('Service.Landmarks', 'Database', data_database); + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/location_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/location_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,39 @@ +/** + * SAPI Sample Data - Location + */ + +(function(){ + + +var data_basicLocationInformation = { + "Longitude":77.694589331833, + "Latitude":12.942209068513, + "Altitude":836.5 + } + +var data_genericLocationInfo = { + "Longitude":77.694546416505, + "Latitude":12.942233711299, + "Altitude":836, + "HorizontalSpeed":0.05999999865889549, + "HorizontalSpeedError":1.0199999809265137, + "SatelliteNumView":11, + "SatelliteNumViewUsed":7, + "Heading":203.89999389648438, + "HeadingError":2.89898989898232, + "MagneticCourse":205.89999389600000, + "MagneticCourseError":1.09090389600000, + "TrueCourse":203.89999389648438, + "TrueCourseError":2.89898989898232, + "MagneticHeading":205.89999389600000, + "MagneticHeadingError":1.09090389600000 + }; + + /** + * register data! + */ + device.implementation.loadData('Service.Location', 'BasicLocationInformation', data_basicLocationInformation); + device.implementation.loadData('Service.Location', 'GenericLocationInfo', data_genericLocationInfo); + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/logging_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/logging_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,377 @@ +/** + * SAPI Sample Data - Logging + */ + +(function(){ + + + var logging_data = [{ + "EventType":0, + "RemoteParty":"", + "EventDuration":5518, + "EventTime":"Wednesday, 08 April, 2009 11:17:42 am", + "Subject":"A", + "PhoneNumber":"5270443", + "Description":"Voice call", + "Link":0, + "id":"30", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":472, + "EventTime":"Wednesday, 08 April, 2009 11:17:42 am", + "Subject":"A", + "PhoneNumber":"1247463", + "Description":"Voice call", + "Link":0, + "id":"29", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":1914, + "EventTime":"Wednesday, 08 April, 2009 11:17:42 am", + "Subject":"A", + "PhoneNumber":"8759891", + "Description":"Voice call", + "Link":0, + "id":"28", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":3130, + "EventTime":"Wednesday, 08 April, 2009 11:17:32 am", + "Subject":"A", + "PhoneNumber":"3200343", + "Description":"Voice call", + "Link":0, + "id":"27", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":4128, + "EventTime":"Wednesday, 08 April, 2009 11:17:32 am", + "Subject":"A", + "PhoneNumber":"2101692", + "Description":"Voice call", + "Link":0, + "id":"26", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":2012, + "EventTime":"Wednesday, 08 April, 2009 11:17:32 am", + "Subject":"A", + "PhoneNumber":"8813355", + "Description":"Voice call", + "Link":0, + "id":"25", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:24 am", + "Subject":"A", + "PhoneNumber":"8092875", + "Description":"Voice call", + "Link":0, + "id":"24", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:24 am", + "Subject":"A", + "PhoneNumber":"3702771", + "Description":"Voice call", + "Link":0, + "id":"23", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:24 am", + "Subject":"A", + "PhoneNumber":"2680939", + "Description":"Voice call", + "Link":0, + "id":"22", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:11 am", + "Subject":"A", + "PhoneNumber":"1075503", + "Description":"Voice call", + "Link":0, + "id":"21", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:11 am", + "Subject":"A", + "PhoneNumber":"9781533", + "Description":"Voice call", + "Link":0, + "id":"20", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:17:11 am", + "Subject":"A", + "PhoneNumber":"4185107", + "Description":"Voice call", + "Link":0, + "id":"19", + "Direction":5, + "EventData":"" + },{ + "EventType":4, + "RemoteParty":"Mobile Office", + "EventDuration":90, + "EventTime":"Wednesday, 08 April, 2009 11:18:37 am", + "Subject":"", + "PhoneNumber":"", + "Description":"Packet Data", + "Link":0, + "id":"18", + "Direction":1, + "EventData":"" + },{ + "EventType":4, + "RemoteParty":"Mobile Office", + "EventDuration":80, + "EventTime":"Wednesday, 08 April, 2009 11:15:30 am", + "Subject":"", + "PhoneNumber":"", + "Description":"Packet Data", + "Link":0, + "id":"18", + "Direction":1, + "EventData":"" + },{ + "EventType":4, + "RemoteParty":"Mobile Office", + "EventDuration":16, + "EventTime":"Wednesday, 08 April, 2009 11:12:33 am", + "Subject":"", + "PhoneNumber":"", + "Description":"Packet Data", + "Link":0, + "id":"17", + "Direction":1, + "EventData":"8303,17570" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":2998, + "EventTime":"Wednesday, 08 April, 2009 11:09:20 am", + "Subject":"A", + "PhoneNumber":"1716582", + "Description":"Voice call", + "Link":0, + "id":"16", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":681, + "EventTime":"Wednesday, 08 April, 2009 11:09:20 am", + "Subject":"A", + "PhoneNumber":"9888150", + "Description":"Voice call", + "Link":0, + "id":"15", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":2294, + "EventTime":"Wednesday, 08 April, 2009 11:09:20 am", + "Subject":"A", + "PhoneNumber":"8378283", + "Description":"Voice call", + "Link":0, + "id":"14", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":4232, + "EventTime":"Wednesday, 08 April, 2009 11:09:19 am", + "Subject":"A", + "PhoneNumber":"6818380", + "Description":"Voice call", + "Link":0, + "id":"13", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":599, + "EventTime":"Wednesday, 08 April, 2009 11:09:19 am", + "Subject":"A", + "PhoneNumber":"5933409", + "Description":"Voice call", + "Link":0, + "id":"12", + "Direction":1, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":6376, + "EventTime":"Wednesday, 08 April, 2009 11:09:12 am", + "Subject":"A", + "PhoneNumber":"5487982", + "Description":"Voice call", + "Link":0, + "id":"11", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":6325, + "EventTime":"Wednesday, 08 April, 2009 11:09:12 am", + "Subject":"A", + "PhoneNumber":"2859596", + "Description":"Voice call", + "Link":0, + "id":"10", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":6571, + "EventTime":"Wednesday, 08 April, 2009 11:09:12 am", + "Subject":"A", + "PhoneNumber":"2820138", + "Description":"Voice call", + "Link":0, + "id":"9", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":4929, + "EventTime":"Wednesday, 08 April, 2009 11:09:12 am", + "Subject":"A", + "PhoneNumber":"6356454", + "Description":"Voice call", + "Link":0, + "id":"8", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":2620, + "EventTime":"Wednesday, 08 April, 2009 11:09:12 am", + "Subject":"A", + "PhoneNumber":"4461166", + "Description":"Voice call", + "Link":0, + "id":"7", + "Direction":0, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:09:02 am", + "Subject":"A", + "PhoneNumber":"8811808", + "Description":"Voice call", + "Link":0, + "id":"6", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:09:02 am", + "Subject":"A", + "PhoneNumber":"2985843", + "Description":"Voice call", + "Link":0, + "id":"5", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:09:02 am", + "Subject":"A", + "PhoneNumber":"9714278", + "Description":"Voice call", + "Link":0, + "id":"4", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:09:02 am", + "Subject":"A", + "PhoneNumber":"5044910", + "Description":"Voice call", + "Link":0, + "id":"3", + "Direction":5, + "EventData":"" + },{ + "EventType":0, + "RemoteParty":"", + "EventDuration":0, + "EventTime":"Wednesday, 08 April, 2009 11:09:02 am", + "Subject":"A", + "PhoneNumber":"6519793", + "Description":"Voice call", + "Link":0, + "id":"2", + "Direction":5, + "EventData":"" + }]; + + + /** + * register data! + */ + device.implementation.loadData('Service.Logging', 'Log', logging_data); + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/mediaManagement_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/mediaManagement_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,233 @@ +/** + * SAPI Sample Data - MediaManagement + */ + +(function(){ + + var music_data = [{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\Breathless.mp3", + "Type":"Media", + "FileName":"Breathless", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":4552794, + "Artist":"ABC", + "SongName":"Breathless", + "TrackNumber":"1", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + },{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\New song.mp3", + "Type":"Media", + "FileName":"New song", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":1232794, + "Artist":"ABC", + "SongName":"New song", + "TrackNumber":"2", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + },{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\Classic song.mp3", + "Type":"Media", + "FileName":"Classic song", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":3212794, + "Artist":"ABC", + "SongName":"Classic song", + "TrackNumber":"3", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + },{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\Folk sonk.mp3", + "Type":"Media", + "FileName":"Folk sonk", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":3412794, + "Artist":"ABC", + "SongName":"Folk sonk", + "TrackNumber":"4", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + },{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\National anthem.mp3", + "Type":"Media", + "FileName":"National anthem", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":4512794, + "Artist":"ABC", + "SongName":"National anthem", + "TrackNumber":"5", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + },{ + "FileNameAndPath":"E:\\Sounds\\Digital\\Album1\\Dance sequence.mp3", + "Type":"Media", + "FileName":"Dance sequence", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":9110000, + "Artist":"ABC", + "SongName":"Dance sequence", + "TrackNumber":"6", + "Album":"Album1", + "Genre":"Pop", + "Composer":"XYZ" + }]; + + var sound_data = [{ + "FileNameAndPath":"E:\\Sounds\\Simple\\Dance sequence-old.mp3", + "Type":"Media", + "FileName":"Dance sequence-old", + "FileExtension":".mp3", + "Drive":"E:", + "MimeType":"audio/mpeg", + "MediaType":1, + "FileDate":"Friday, 13 February, 2009 12:01:24 am", + "FileSize":1002794, + },{ + "FileNameAndPath": "E:\\Sounds\\Simple\\Rooster.mp3", + "Type": "Media", + "FileName": "Rooster", + "FileExtension": ".mp3", + "Drive": "E:", + "MimeType": "audio/mpeg", + "MediaType": 1, + "FileDate": "Friday, 13 February, 2009 12:01:24 am", + "FileSize": 911000, + + }]; + var image_data = [{ + "FileNameAndPath":"E:\\IMAGES\\Water.JPG", + "Type":"Media", + "FileName":"Water", + "FileExtension":".JPG", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Monday, 04 August, 2008 8:31:46 pm", + "FileSize":25275 + },{ + "FileNameAndPath":"E:\\IMAGES\\Beach.JPG", + "Type":"Media", + "FileName":"Beach", + "FileExtension":".JPG", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Wednesday, 28 May, 2008 8:52:16 am", + "FileSize":35151 + },{ + "FileNameAndPath":"E:\\IMAGES\\CountrySide.jpg", + "Type":"Media", + "FileName":"CountrySide", + "FileExtension":".jpg", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Monday, 24 March, 2008 12:27:32 am", + "FileSize":44318 + },{ + "FileNameAndPath":"E:\\IMAGES\\CoolBlue.JPG", + "Type":"Media", + "FileName":"CoolBlue", + "FileExtension":".JPG", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Monday, 04 August, 2008 8:31:46 pm", + "FileSize":25275 + },{ + "FileNameAndPath":"E:\\IMAGES\\Swimming.JPG", + "Type":"Media", + "FileName":"Swimming", + "FileExtension":".JPG", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Wednesday, 28 May, 2008 8:52:16 am", + "FileSize":35151 + },{ + "FileNameAndPath":"E:\\IMAGES\\Sky.jpg", + "Type":"Media", + "FileName":"Sky", + "FileExtension":".jpg", + "Drive":"E:", + "MimeType":"image/jpeg", + "MediaType":3, + "FileDate":"Monday, 24 March, 2008 12:27:32 am", + "FileSize":44318 + }]; + + var video_data = [{ + "FileNameAndPath":"C:\\Data\\Videos\\Inside water.3gp", + "Type":"Media", + "FileName":"Inside water", + "FileExtension":".3gp", + "Drive":"C:", + "MimeType":"video/3gpp", + "MediaType":4, + "FileDate":"Wednesday, 08 April, 2009 5:04:18 pm", + "FileSize":1103067 + },{ + "FileNameAndPath":"C:\\Data\\Videos\\Daring.mp4", + "Type":"Media", + "FileName":"Daring", + "FileExtension":".mp4", + "Drive":"C:", + "MimeType":"video/mp4", + "MediaType":4, + "FileDate":"Wednesday, 08 April, 2009 5:04:18 pm", + "FileSize":1020200 + },{ + "FileNameAndPath":"C:\\Data\\Videos\\On the train.mp4", + "Type":"Media", + "FileName":"On the train", + "FileExtension":".mp4", + "Drive":"C:", + "MimeType":"video/mp4", + "MediaType":4, + "FileDate":"Wednesday, 08 April, 2009 5:04:18 pm", + "FileSize":9090900 + }]; + + var streaming_data = [{}]; + + /** + * register data! + */ + device.implementation.loadData('Service.MediaManagement', 'Music', music_data); + device.implementation.loadData('Service.MediaManagement', 'Sound', sound_data); + device.implementation.loadData('Service.MediaManagement', 'Image', image_data); + device.implementation.loadData('Service.MediaManagement', 'Video', video_data); + device.implementation.loadData('Service.MediaManagement', 'StreamingURL', streaming_data); + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/messaging_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/messaging_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,193 @@ +/** + * SAPI Sample Data - Messaging + */ + +(function(){ + + +var data_messaging = [{ + "MessageType": "SMS", + "Sender": "0435445454", + "Subject": "Reproduction, transfer, distribu", + "Time": "Wednesday, 01 April, 2009 6:11:32 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1048980, + "BodyText": "Reproduction, transfer, distribution or storage of" + },{ + "MessageType": "SMS", + "Sender": "+35854553456", + "Subject": "If you place an order for a prod", + "Time": "Wednesday, 01 April, 2009 6:11:32 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1048981, + "BodyText": "If you place an order for a product, request a ser" + },{ + "MessageType": "SMS", + "Sender": "+4465655656", + "Subject": "You also agree that we have no c", + "Time": "Wednesday, 01 April, 2009 6:11:33 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1048982, + "BodyText": "You also agree that we have no control over the co" + + },{ + "MessageType": "SMS", + "Sender": "+4443433434", + "Subject": "We may use this information to r", + "Time": "Wednesday, 01 April, 2009 6:11:33 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1048983, + "BodyText": "We may use this information to respond to your req" + },{ + "MessageType": "SMS", + "Sender": "0565645455", + "Subject": "In order to respond to your ques", + "Time": "Wednesday, 01 April, 2009 6:11:33 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1048984, + "BodyText": "In order to respond to your questions or manage in" + },{ + "MessageType": "SMS", + "Sender": "0231343243", + "Subject": "We consents to you browsing the ", + "Time": "Wednesday, 01 April, 2009 6:11:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1048985, + "BodyText": "We consents to you browsing the pages on your computer or printing copies of extracts from these pag" + },{ + "MessageType": "SMS", + "Sender": "0545545454", + "Subject": "If you place an order for a prod", + "Time": "Wednesday, 01 April, 2009 6:11:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1048986, + "BodyText": "If you place an order for a product, request a service or submit content to this site, we may need t" + },{ + "MessageType": "unknown", + "Sender": "Edith", + "Subject": "You will win the battle, GUARANT", + "Time": "Wednesday, 01 April, 2009 6:12:22 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1048987 + },{ + "MessageType": "unknown", + "Sender": "Edith", + "Subject": "You will win the battle, GUARANT", + "Time": "Wednesday, 01 April, 2009 6:12:23 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1048989 + },{ + "MessageType": "unknown", + "Sender": "+4443433434", + "Subject": "Join us at the OSGi 2003 World C", + "Time": "Wednesday, 01 April, 2009 6:14:10 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1049013 + },{ + "MessageType": "unknown", + "Sender": "0231343243", + "Subject": "Put your subject line here", + "Time": "Wednesday, 01 April, 2009 6:14:10 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": 1049014 + },{ + "MessageType": "MMS", + "Sender": "0455454454", + "Subject": "A very funny game", + "Time": "Wednesday, 01 April, 2009 6:16:01 pm", + "Priority": "Medium", + "Attachment": true, + "Unread": true, + "MessageId": 1049043, + "BodyText": "" + },{ + "MessageType": "MMS", + "Sender": "0542303286", + "Subject": "Weedmon say: call, we be open 7 ", + "Time": "Wednesday, 01 April, 2009 6:16:03 pm", + "Priority": "Medium", + "Attachment": true, + "Unread": true, + "MessageId": 1049044, + "BodyText": "" + },{ + "MessageType": "SMS", + "Sender": "+4465656565", + "Subject": "In addition, a link to a such si", + "Time": "Wednesday, 01 April, 2009 6:16:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1049045, + "BodyText": "In addition, a link to a such site does not imply that we endorses the site or the products or servi" + },{ + "MessageType": "SMS", + "Sender": "0433032865", + "Subject": "The contents of these pages are ", + "Time": "Wednesday, 01 April, 2009 6:16:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1049046, + "BodyText": "The contents of these pages are copyrighted. Any rights not expressly granted herein are reserved. T" + },{ + "MessageType": "SMS", + "Sender": "+4465655656", + "Subject": "We may use this information to r", + "Time": "Wednesday, 01 April, 2009 6:16:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1049047, + "BodyText": "We may use this information to respond to your requests, or to contact you via mail, e-mail or phone" + },{ + "MessageType": "SMS", + "Sender": "+35876653456", + "Subject": "The use of press releases and ot", + "Time": "Wednesday, 01 April, 2009 6:16:59 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1049048, + "BodyText": "The use of press releases and other documents classified as public is permitted in public communicat" + },{ + "MessageType": "SMS", + "Sender": "0530328732", + "Subject": "The use of press releases and ot", + "Time": "Wednesday, 01 April, 2009 6:17:00 pm", + "Priority": "Medium", + "Attachment": false, + "Unread": false, + "MessageId": 1049054, + "BodyText": "The use of press releases and other documents classified as public is permitted in public communicat" + }]; + + /** + * register data! + */ + device.implementation.loadData('Service.Messaging', 'Inbox', data_messaging); + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/sensor_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/sensor_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,469 @@ +/** + * SAPI Sample Data - Sensor + */ + +(function(){ + +var property = { + "AccelerometerAxis":{ + "Availability":{ + "PropertyId":"Availability", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "ChannelAccuracy":{ + "PropertyId":"ChannelAccuracy", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":10 + }, + "ChannelDataFormat": + { + "PropertyId":"ChannelDataFormat", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":2 + }, + "ChannelScale": + { + "PropertyId":"ChannelScale", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "ChannelUnit": + { + "PropertyId":"ChannelUnit", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":10 + }, + "ConnectionType": + { + "PropertyId":"ConnectionType", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "DataRate": + { + "PropertyId":"DataRate", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "Description": + { + "PropertyId":"Description", + "PropertyDataType":2, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":"Accelerometer" + }, + "MeasureRange": + { + "PropertyId":"MeasureRange", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "ScaledRange": + { + "PropertyId":"ScaledRange", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":8 + } + }, + "AccelerometerDoubleTapping": + { + "Availability": + { + "PropertyId":"Availability", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "ChannelAccuracy": + { + "PropertyId":"ChannelAccuracy", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":10 + }, + "ChannelDataFormat": + { + "PropertyId":"ChannelDataFormat", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":2 + }, + "ChannelScale": + { + "PropertyId":"ChannelScale", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "ChannelUnit": + { + "PropertyId":"ChannelUnit", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":10 + }, + "ConnectionType": + { + "PropertyId":"ConnectionType", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "Description": + { + "PropertyId":"Description", + "PropertyDataType":2, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":"Accelerometer" + }, + "MeasureRange": + { + "PropertyId":"MeasureRange", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "ScaledRange": + { + "PropertyId":"ScaledRange", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":8 + } + }, + "Orientation": + { + "Availability": + { + "PropertyId":"Availability", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "DataRate": + { + "PropertyId":"DataRate", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "MeasureRange": + { + "PropertyId":"MeasureRange", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + } + }, + "Rotation": + { + "Availability": + { + "PropertyId":"Availability", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":1 + }, + "ChannelAccuracy": + { + "PropertyId":"ChannelAccuracy", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0.041666666666666664 + }, + "DataRate": + { + "PropertyId":"DataRate", + "PropertyDataType":0, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":0 + }, + "MeasureRange": + { + "PropertyId":"MeasureRange", + "PropertyDataType":1, + "ItemIndex":-1, + "ReadOnly":true, + "PropertyValue":359 + } + } +}; +var data_all =[{ + "ChannelId":7, + "ContextType":2, + "Quantity":10, + "ChannelType":270553214, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":24, + "ChannelDataTypeId":270553214 + }, + { + "ChannelId":8, + "ContextType":2, + "Quantity":11, + "ChannelType":270553217, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":16, + "ChannelDataTypeId":270553215 + }, + { + "ChannelId":10, + "ContextType":3, + "Quantity":12, + "ChannelType":270553224, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":16, + "ChannelDataTypeId":270553224 + }, + { + "ChannelId":11, + "ContextType":3, + "Quantity":13, + "ChannelType":270553225, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":24, + "ChannelDataTypeId":270553225 + }]; + +var data_accelerometerAxis = [{ + "ChannelId":7, + "ContextType":2, + "Quantity":10, + "ChannelType":270553214, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":24, + "ChannelDataTypeId":270553214 + }]; + +var data_accelerometerDoubleTapping = [{ + "ChannelId":8, + "ContextType":2, + "Quantity":11, + "ChannelType":270553217, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":16, + "ChannelDataTypeId":270553215 + }]; + +var data_orientation = [{ + "ChannelId":10, + "ContextType":3, + "Quantity":12, + "ChannelType":270553224, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":16, + "ChannelDataTypeId":270553224 + }]; + +var data_rotation = [{ + "ChannelId":11, + "ContextType":3, + "Quantity":13, + "ChannelType":270553225, + "Location":"NoLoc", + "VendorId":"Nokia", + "DataItemSize":24, + "ChannelDataTypeId":270553225 + }]; + + +var dataRet_accelerometerAxis = [{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":30, + "YAxisData":30, + "ZAxisData":30 + },{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":35, + "YAxisData":30, + "ZAxisData":30 + },{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":30, + "YAxisData":35, + "ZAxisData":30 + },{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":30, + "YAxisData":30, + "ZAxisData":35 + },{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":40, + "YAxisData":30, + "ZAxisData":30 + },{ + "DataType":"AxisData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XAxisData":30, + "YAxisData":40, + "ZAxisData":30 + }]; + +var dataRet_accelerometerDoubleTapping = [{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":30 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":40 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":50 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":60 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":70 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":80 + },{ + "DataType":"DoubleTappingData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceDirection":90 + }]; + +var dataRet_orientation = [{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayUp" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayDown" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayLeftUp" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayRightUp" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayUpwards" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"DisplayDownwards" + },{ + "DataType":"OrientationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "DeviceOrientation":"Undefined" + }]; + +var dataRet_rotation = [{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":30, + "YRotation":35, + "ZRotation":30 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":35, + "YRotation":30, + "ZRotation":30 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":30, + "YRotation":30, + "ZRotation":35 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":40, + "YRotation":30, + "ZRotation":30 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":30, + "YRotation":40, + "ZRotation":30 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":30, + "YRotation":30, + "ZRotation":40 + },{ + "DataType":"RotationData", + "TimeStamp":"Wednesday, 15 April, 2009 12:00:00 am", + "XRotation":50, + "YRotation":50, + "ZRotation":50 + }]; + + /** + * register data! + */ + device.implementation.loadData('Service.Sensor','SensorProperty',property); + device.implementation.loadData('Service.Sensor', 'All', data_all); + device.implementation.loadData('Service.Sensor', 'AccelerometerAxis', data_accelerometerAxis); + device.implementation.loadData('Service.Sensor', 'AccelerometerDoubleTapping', data_accelerometerDoubleTapping); + device.implementation.loadData('Service.Sensor', 'Orientation', data_orientation); + device.implementation.loadData('Service.Sensor', 'Rotation', data_rotation); +/* device.implementation.loadData('Service.Sensor', 'AccelerometerAxisRet', dataRet_accelerometerAxis); + device.implementation.loadData('Service.Sensor', 'AccelerometerDoubleTappingRet', dataRet_accelerometerDoubleTapping); + device.implementation.loadData('Service.Sensor', 'OrientationRet', dataRet_orientation); + device.implementation.loadData('Service.Sensor', 'RotationRet', dataRet_rotation);*/ + +})() + \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/data/sysInfo_data.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/data/sysInfo_data.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,345 @@ +/** + * SAPI Sample Data - SysInfo + */ + + +(function(){ + +var data_5800 = { + "battery":{ + "batterystrength":{ + "Status":85, + "Entity":"Battery", + "Key":"BatteryStrength" + }, + "chargingstatus":{ + "Status":0, + "Entity":"Battery", + "Key":"ChargingStatus" + } + }, + "connectivity":{ + "bluetooth":{ + "Status":1, + "Entity":"Connectivity", + "Key":"BlueTooth" + }, + "infrared":{ + "Status":-1, + "Entity":"Connectivity", + "Key":"InfraRed" + }, + "activeconnections":{ + "ConnectionList":[{ + "IAPID":5, + "IAPName":"Browser", + "IAPConnectionName":"", + "NetworkName":"Browser", + "ConnectionType":7, + "ConnectionStatus":1 + },{ + "IAPID":1, + "IAPName":"airtelgprs.com", + "IAPConnectionName":"Mobile Office", + "NetworkName":"GPRS", + "ConnectionType":6, + "ConnectionStatus":1 + }], + "Entity":"Connectivity", + "Key":"ActiveConnections" + }, + "wlanmacaddress":{ + "StringData":"00:21:fe:97:c5:27", + "Entity":"Connectivity", + "Key":"WLanMacAddress" + } + }, + "device":{ + "firmwareversion":{ + "StringData":"V 20.0.012 RnD\n04-03-09\nRM-356\n(c)NMP", + "Entity":"Device", + "Key":"FirmwareVersion"}, + "platformversion":{ + "MajorVersion":"5", + "MinorVersion":"0", + "Entity":"Device", + "Key":"PlatformVersion" + }, + "producttype":{ + "StringData":"RM-356", + "Entity":"Device", + "Key":"ProductType" + }, + "manufacturer":{ + "StringData":"Nokia", + "Entity":"Device", + "Key":"Manufacturer" + }, + "machineid":{ + "Status":536926806, + "Entity":"Device", + "Key":"MachineId" + }, + "phonemodel":{ + "StringData":"5800 XpressMusic", + "Entity":"Device", + "Key":"PhoneModel" + }, + "imei":{ + "StringData":"004401102480155", + "Entity":"Device", + "Key":"IMEI" + } + }, + "display":{ + "brightness":{ + "Status":50, + "Entity":"Display", + "Key":"Brightness" + }, + "screensavertimeout":{ + "Status":15, + "Entity":"Display", + "Key":"ScreenSaverTimeout" + }, + "keyguardtime":{ + "Status":60, + "Entity":"Display", + "Key":"KeyGuardTime" + }, + "keyguardtime":{ + "Status":60, + "Entity":"Display", + "Key":"KeyGuardTime" + }, + "autolocktime":{ + "Status":0, + "Entity":"Display", + "Key":"AutoLockTime" + }, + "autolockstatus":{ + "Status":0, + "Entity":"Display", + "Key":"AutoLockStatus" + }, + "lighttimeout":{ + "Status":45, + "Entity":"Display", + "Key":"LightTimeout" + }, + "displayresolution":{ + "XPixels":640, + "YPixels":360, + "Entity":"Display", + "Key":"DisplayResolution" + }, + "displayorientation":{ + "Status":3, + "Entity":"Display", + "Key":"DisplayOrientation" + }, + "wallpaper":{ + "StringData":"C://Data//Others//wallpaper.jpeg", + "Entity":"Display", + "Key":"Wallpaper" + } + + }, + "features":{ + "bluetooth":{ + "Status":1, + "Entity":"Features", + "Key":"BlueTooth" + }, + "infrared":{ + "Status":0, + "Entity":"Features", + "Key":"InfraRed" + }, + "camera":{ + "Status":1, + "Entity":"Features", + "Key":"CAMERA" + }, + "memorycard":{ + "Status":1, + "Entity":"Features", + "Key":"MemoryCard" + }, + "fmradio":{ + "Status":1, + "Entity":"Features", + "Key":"FMRADIO" + }, + "qwerty":{ + "Status":1, + "Entity":"Features", + "Key":"QWERTY" + }, + "wlan":{ + "Status":1, + "Entity":"Features", + "Key":"WLAN" + }, + "usb":{ + "Status":1, + "Entity":"Features", + "Key":"USB" + }, + "pen":{ + "Status":1, + "Entity":"Features", + "Key":"Pen" + }, + "led":{ + "Status":0, + "Entity":"Features", + "Key":"LED" + }, + "coverui":{ + "Status":0, + "Entity":"Features", + "Key":"CoverUI" + }, + "sidevolumekeys":{ + "Status":1, + "Entity":"Features", + "Key":"SideVolumeKeys" + }, + "vibra":{ + "Status":1, + "Entity":"Features", + "Key":"Vibra" + } + }, + "general":{ + "connectedaccessories":{ + "AccessoryList":[{"AccessoryType":0,"AccessoryState":1}], + "Entity":"General", + "Key":"ConnectedAccessories" + }, + "accessorystatus":{ + "AccessoryInfo":{"AccessoryType":0,"AccessoryState":0}, + "Entity":"General", + "Key":"AccessoryStatus" + }, + "inputlanguage":{ + "Status":1, + "Entity":"General", + "Key":"InputLanguage" + }, + "supportedlanguages":{ + "LanguageList":[1,2,3,5,13,4], + "Entity":"General", + "Key":"SupportedLanguages" + }, + "predictivetext":{ + "Status":0, + "Entity":"General", + "Key":"PredictiveText" + }, + "vibraactive":{ + "Status":1, + "Entity":"General", + "Key":"VibraActive" + }, + "availableusbmodes":{ + "StringList":["PC Suite","Mass storage","Image transfer","Media transfer"], + "Entity":"General", + "Key":"AvailableUSBModes" + }, + "activeusbmode":{ + "StringData":"Mass storage", + "Entity":"General", + "Key":"ActiveUSBMode" + }, + "flipstatus":{ + "Status":-1, + "Entity":"General", + "Key":"FlipStatus" + }, + "gripstatus":{ + "Status":1, + "Entity":"General", + "Key":"GripStatus" + } + }, + "memory":{ + "listdrives":{ + "DriveList":["C:\\","D:\\","E:\\","Z:\\"], + "Entity":"Memory", + "Key":"ListDrives" + }, + "memorycard":{ + "Status":1, + "Entity":"Memory", + "Key":"MemoryCard" + }, + "driveinfo":{ + "Drive": { + "C:\\": { + "Drive": "C:\\", + "CriticalSpace": 131072, + "MediaType": 9, + "TotalSpace": 90210304, + "FreeSpace": 79319040, + "DriveName": "", + "BatterState": 0 + }, + "D:\\": { + "Drive": "D:\\", + "CriticalSpace": 2700000, + "MediaType": 5, + "TotalSpace": 52469760, + "FreeSpace": 52457472, + "DriveName": "", + "BatterState": 0 + }, + "Z:\\": { + "Drive": "Z:\\", + "CriticalSpace": 131072, + "MediaType": 7, + "TotalSpace": 0, + "FreeSpace": 0, + "DriveName": "RomDrive", + "BatterState": 0 + } + }, + "Entity":"Memory", + "Key":"DriveInfo" + } + }, + "network":{ + "registrationstatus":{ + "Status":4, + "Entity":"Network", + "Key":"RegistrationStatus" + }, + "networkmode":{ + "Status":0, + "Entity":"Network", + "Key":"NetworkMode" + }, + "signalstrength":{ + "Status":61, + "Entity":"Network", + "Key":"SignalStrength" + }, + "currentnetwork":{ + "NetworkName":"Airtel", + "NetworkStatus":1, + "NetworkMode":1, + "CountryCode":"404", + "NetworkCode":"45", + "LocationStatus":false, + "Entity":"Network", + "Key":"CurrentNetwork" + } + } + }; + /** + * register data! + */ + device.implementation.loadData('Service.SysInfo', '', data_5800); + +})() diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/BrowserNotificationBar-Toogle.gif Binary file org.symbian.tools.wrttools.previewer/preview/images/BrowserNotificationBar-Toogle.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/Gradient0Background.png Binary file org.symbian.tools.wrttools.previewer/preview/images/Gradient0Background.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/IconArea-hover.png Binary file org.symbian.tools.wrttools.previewer/preview/images/IconArea-hover.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/TransperantImage.png Binary file org.symbian.tools.wrttools.previewer/preview/images/TransperantImage.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/active-orientation-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/active-orientation-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/battery-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/battery-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/console-clear-button.png Binary file org.symbian.tools.wrttools.previewer/preview/images/console-clear-button.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/console-close-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/console-close-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/console-icon.gif Binary file org.symbian.tools.wrttools.previewer/preview/images/console-icon.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/console-open-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/console-open-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/default-Icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/default-Icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Landscape.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Landscape.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Portrait.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Portrait.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/device/240x320/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Landscape.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Landscape.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Portrait.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Portrait.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/device/320x240/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Landscape.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Landscape.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Portrait.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Portrait.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/device/360x640/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/360x640/hs-landscape.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/360x640/hs-landscape.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/360x640/hs-portrait.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/360x640/hs-portrait.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/800x352/Landscape.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/800x352/Landscape.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/800x352/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/device/800x352/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/MenuItem-keys-Bg2.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/MenuItem-keys-Bg2.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/Thumbs.db Binary file org.symbian.tools.wrttools.previewer/preview/images/device/Thumbs.db has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/device.7z Binary file org.symbian.tools.wrttools.previewer/preview/images/device/device.7z has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/device/menuKeys-bg.png Binary file org.symbian.tools.wrttools.previewer/preview/images/device/menuKeys-bg.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/errorIcon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/errorIcon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/gradient-bg.png Binary file org.symbian.tools.wrttools.previewer/preview/images/gradient-bg.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/hs-iframeMask.png Binary file org.symbian.tools.wrttools.previewer/preview/images/hs-iframeMask.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/infoIcon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/infoIcon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/memory-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/memory-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/messaging-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/messaging-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/normal-orientation-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/normal-orientation-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/settings-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/settings-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/statusBar_240x320.png Binary file org.symbian.tools.wrttools.previewer/preview/images/statusBar_240x320.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/statusBar_320x240.png Binary file org.symbian.tools.wrttools.previewer/preview/images/statusBar_320x240.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/statusBar_360x640.png Binary file org.symbian.tools.wrttools.previewer/preview/images/statusBar_360x640.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/statusBar_640x360.png Binary file org.symbian.tools.wrttools.previewer/preview/images/statusBar_640x360.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/statusBar_800x352.png Binary file org.symbian.tools.wrttools.previewer/preview/images/statusBar_800x352.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/sub-menu-arrow.png Binary file org.symbian.tools.wrttools.previewer/preview/images/sub-menu-arrow.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/th-bg-gradient.png Binary file org.symbian.tools.wrttools.previewer/preview/images/th-bg-gradient.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/warningIcon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/warningIcon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/images/wrt-help-icon.png Binary file org.symbian.tools.wrttools.previewer/preview/images/wrt-help-icon.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/nopreview.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/nopreview.html Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,44 @@ + + + + + + +
Widget preview is not available for this file, it is not the MainHtml file for the widget. +
+ + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/000000_40x100_textures_05_inset_soft_25.png Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/000000_40x100_textures_05_inset_soft_25.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/0078a3_40x100_textures_02_glass_40.png Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/0078a3_40x100_textures_02_glass_40.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_arrows_leftright.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_arrows_leftright.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_arrows_updown.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_arrows_updown.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_close.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_close.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_doc.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_doc.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_folder_closed.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_folder_closed.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_folder_open.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_folder_open.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_minus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_minus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_plus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_11x11_icon_plus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_down.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_down.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_left.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_left.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_right.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_right.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_up.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/222222_7x7_arrow_up.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/555555_40x100_textures_02_glass_20.png Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/555555_40x100_textures_02_glass_20.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_arrows_leftright.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_arrows_leftright.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_arrows_updown.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_arrows_updown.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_close.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_close.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_doc.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_doc.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_folder_closed.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_folder_closed.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_folder_open.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_folder_open.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_minus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_minus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_plus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_plus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_resize_se.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_11x11_icon_resize_se.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_down.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_down.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_left.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_left.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_right.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_right.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_up.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/cccccc_7x7_arrow_up.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/f58400_40x100_textures_05_inset_soft_30.png Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/f58400_40x100_textures_05_inset_soft_30.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_arrows_leftright.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_arrows_leftright.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_arrows_updown.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_arrows_updown.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_close.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_close.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_doc.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_doc.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_folder_closed.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_folder_closed.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_folder_open.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_folder_open.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_minus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_minus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_plus.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_11x11_icon_plus.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_down.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_down.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_left.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_left.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_right.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_right.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_up.gif Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/ffffff_7x7_arrow_up.gif has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/slider-handle.png Binary file org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/images/slider-handle.png has changed diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/ui.all.css --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/css/ui-darkness/ui.all.css Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,630 @@ +/* + * jQuery UI screen structure and presentation + * This CSS file was generated by ThemeRoller, a Filament Group Project for jQuery UI + * Author: Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com + * Visit ThemeRoller.com +*/ + +/* + * Note: If your ThemeRoller settings have a font size set in ems, your components will scale according to their parent element's font size. + * As a rule of thumb, set your body's font size to 62.5% to make 1em = 10px. + * body {font-size: 62.5%;} +*/ + + + +/*UI accordion*/ +.ui-accordion { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + font-size: 0.8em; + border-bottom: 1px solid #666666; +} +.ui-accordion-group { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + border: 1px solid #666666; + border-bottom: none; +} +.ui-accordion-header { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + cursor: pointer; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; +} +.ui-accordion-header a { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + display: block; + font-size: 0.8em; + font-weight: bold; + text-decoration: none; + padding: .5em .5em .5em 1.7em; + color: #eeeeee; + background: url(images/cccccc_7x7_arrow_right.gif) .5em 50% no-repeat; +} +.ui-accordion-header a:hover { + background: url(images/ffffff_7x7_arrow_right.gif) .5em 50% no-repeat; + color: #ffffff; +} +.ui-accordion-header:hover { + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; + color: #ffffff; +} +.selected .ui-accordion-header, .selected .ui-accordion-header:hover { + background: #f58400 url(images/f58400_40x100_textures_05_inset_soft_30.png) 0 50% repeat-x; +} +.selected .ui-accordion-header a, .selected .ui-accordion-header a:hover { + color: #ffffff; + background: url(images/222222_7x7_arrow_down.gif) .5em 50% no-repeat; +} +.ui-accordion-content { + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + color: #ffffff; + font-size: 0.8em; +} +.ui-accordion-content p { + padding: 0.8em 1.7em 0.6em; +} + + + + + + +/*UI tabs*/ +.ui-tabs-nav { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + font-size: 1.0.8em; +/* + float: left; + +*/ position: relative; + z-index: 1; +/* + border-right: 1px solid #666666; +*/ + bottom: -1px; +} +.ui-tabs-nav ul { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; +} +.ui-tabs-nav li { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + float: left; + border: 1px solid #666666; + border-right: none; +} +.ui-tabs-nav li a { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + float: left; + font-size: 0.8em; + font-weight: bold; + text-decoration: none; + padding: .5em 1.7em; + color: #eeeeee; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; +} +.ui-tabs-nav li a:hover { + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; + color: #ffffff; +} +.ui-tabs-nav li.ui-tabs-selected { + border-bottom-color: #f58400; +} +.ui-tabs-nav li.ui-tabs-selected a, .ui-tabs-nav li.ui-tabs-selected a:hover { + background: #f58400 url(images/f58400_40x100_textures_05_inset_soft_30.png) 0 50% repeat-x; + color: #ffffff; +} +.ui-tabs-panel { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + clear:left; + border-top: 1px solid #666666; +/* + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + +*/ color: #ffffff; + padding: 15px; + font-size: 1.0.8em; +} +.ui-tabs-hide { + display: none;/* for accessible hiding: position: absolute; left: -99999999px*/; +} + + + + + +/*slider*/ +.ui-slider { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + font-size: 1.0.8em; + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + border: 1px solid #666666; + height: .8em; + position: relative; +} +.ui-slider-handle { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + position: absolute; + z-index: 2; + top: -7px; +/* width: 1.2em; + height: 1.2em; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; + border: 1px solid #666666; +*/ + background-image: url(images/slider-handle.png); + background-repeat: no-repeat; + background-position: 0px 0px; + height: 19px; + width: 17px; +} +.ui-slider-handle:hover { + background-position: 0px -19px; +} +.ui-slider-handle-active, .ui-slider-handle-active:hover { + background-position: 0px -38px; +} +.ui-slider-range { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + height: .8em; + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; + position: absolute; + border: 1px solid #666666; + border-left: 0; + border-right: 0; + top: -1px; + z-index: 1; + opacity:.7; +/* + filter:Alpha(Opacity=70); + +*/} + + + + + + +/*dialog*/ +.ui-dialog { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + font-size: 0.9em; + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + color: #ffffff; + border: 4px solid #666666; + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + z-index: 99999; +} +.ui-resizable .ui-resizable-handle { + display: block; +} +body .ui-resizable-disabled .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +body .ui-resizable-autohide .ui-resizable-handle { display: none; } /* use 'body' to make it more specific (css order) */ +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0px; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0px; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0px; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0px; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 13px; + height: 13px; + right: 0px; + bottom: 0px; + background: url(images/cccccc_11x11_icon_resize_se.gif) no-repeat 0 0; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: 0px; + bottom: 0px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: 0px; + top: 0px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: 0px; + top: 0px; +} +.ui-dialog-titlebar { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + padding: .5em 1.5em .5em 0.8em; + color: #eeeeee; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; + border-bottom: 1px solid #666666; + font-size: 0.8em; + font-weight: bold; + position: relative; +} +.ui-dialog-title {} +.ui-dialog-titlebar-close { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + background: url(images/cccccc_11x11_icon_close.gif) 0 0 no-repeat; + position: absolute; + right: 8px; + top: .7em; + width: 11px; + height: 11px; + z-index: 100; + cursor: pointer !important; +} +.ui-dialog-titlebar-close-hover, .ui-dialog-titlebar-close:hover { + background: url(images/ffffff_11x11_icon_close.gif) 0 0 no-repeat; +} +.ui-dialog-titlebar-close:active { + background: url(images/222222_11x11_icon_close.gif) 0 0 no-repeat; +} +.ui-dialog-titlebar-close span { + display: none; +} +.ui-dialog-content { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + color: #ffffff; +/* + padding: 1.5em 1.7em; +*/ + padding-left: 1px; +} +.ui-dialog-buttonpane { + position: absolute; + bottom: 0; + width: 100%; + text-align: left; + border-top: 1px solid #666666; + background: #000000; +} +.ui-dialog-buttonpane button { + margin: .5em 8px .5em 0; + color: #eeeeee; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; + font-size: 0.8em; + font-weight: bolder; + border: 1px solid #666666; + cursor: pointer; + padding: .2em .6em .3em .6em; + line-height: 1.4em; + float: right; +} +.ui-dialog-buttonpane button:hover { + color: #ffffff; + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; + border: 1px solid #4bd94b; +} +.ui-dialog-buttonpane button:active { + color: #ffffff; + background: #f58400 url(images/f58400_40x100_textures_05_inset_soft_30.png) 0 50% repeat-x; + border: 1px solid #ffaf0f; +} +/* This file skins dialog */ +.ui-dialog.ui-draggable .ui-dialog-titlebar, +.ui-dialog.ui-draggable .ui-dialog-titlebar { + cursor: move; +} + + + + + + + +/*datepicker*/ +/* Main Style Sheet for jQuery UI date picker */ +.ui-datepicker-div, .ui-datepicker-inline, #ui-datepicker-div { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + font-size: 1.0.8em; + border: 4px solid #666666; + width: 15.5em; + padding: 2.5em .5em .5em .5em; + position: relative; +} +.ui-datepicker-div, #ui-datepicker-div { + z-index: 9999; /*must have*/ + display: none; +} +.ui-datepicker-inline { + float: left; + display: block; +} +.ui-datepicker-control { + display: none; +} +.ui-datepicker-current { + display: none; +} +.ui-datepicker-next, .ui-datepicker-prev { + position: absolute; + left: .5em; + top: .5em; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; +} +.ui-datepicker-next { + left: 14.6em; +} +.ui-datepicker-next:hover, .ui-datepicker-prev:hover { + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; +} +.ui-datepicker-next a, .ui-datepicker-prev a { + text-indent: -999999px; + width: 1.3em; + height: 1.4em; + display: block; + font-size: 0.8em; + background: url(images/cccccc_7x7_arrow_left.gif) 50% 50% no-repeat; + border: 1px solid #666666; + cursor: pointer; +} +.ui-datepicker-next a { + background: url(images/cccccc_7x7_arrow_right.gif) 50% 50% no-repeat; +} +.ui-datepicker-prev a:hover { + background: url(images/ffffff_7x7_arrow_left.gif) 50% 50% no-repeat; +} +.ui-datepicker-next a:hover { + background: url(images/ffffff_7x7_arrow_right.gif) 50% 50% no-repeat; +} +.ui-datepicker-prev a:active { + background: url(images/222222_7x7_arrow_left.gif) 50% 50% no-repeat; +} +.ui-datepicker-next a:active { + background: url(images/222222_7x7_arrow_right.gif) 50% 50% no-repeat; +} +.ui-datepicker-header select { + border: 1px solid #666666; + color: #eeeeee; + background: #555555; + font-size: 0.8em; + line-height: 1.4em; + position: absolute; + top: .5em; + margin: 0 !important; +} +.ui-datepicker-header option:focus, .ui-datepicker-header option:hover { + background: #0078a3; +} +.ui-datepicker-header select.ui-datepicker-new-month { + width: 7em; + left: 2.2em; +} +.ui-datepicker-header select.ui-datepicker-new-year { + width: 5em; + left: 9.4em; +} +table.ui-datepicker { + width: 15.5em; + text-align: right; +} +table.ui-datepicker td a { + padding: .0.8em .3em .0.8em 0; + display: block; + color: #eeeeee; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; + cursor: pointer; + border: 1px solid #000000; +} +table.ui-datepicker td a:hover { + border: 1px solid #4bd94b; + color: #ffffff; + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; +} +table.ui-datepicker td a:active { + border: 1px solid #ffaf0f; + color: #ffffff; + background: #f58400 url(images/f58400_40x100_textures_05_inset_soft_30.png) 0 50% repeat-x; +} +table.ui-datepicker .ui-datepicker-title-row td { + padding: .3em 0; + text-align: center; + font-size: .9em; + color: #ffffff; + text-transform: uppercase; +} +table.ui-datepicker .ui-datepicker-title-row td a { + color: #ffffff; +} +.ui-datepicker-cover { + display: none; + display: block; + position: absolute; + z-index: -1; +/* + filter: mask(); + +*/ top: -4px; + left: -4px; + width: 193px; + height: 200px; +} + + + + + + + + + + + + + + +/* +Generic ThemeRoller Classes +>> Make your jQuery Components ThemeRoller-Compatible! +*/ + +/*component global class*/ +.ui-component { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; + font-family: Segoe UI, Arial, sans-serif; + font-size: 1.0.8em; +} +/*component content styles*/ +.ui-component-content { + border: 1px solid #666666; + background: #000000 url(images/000000_40x100_textures_05_inset_soft_25.png) 0 bottom repeat-x; + color: #ffffff; +} +.ui-component-content a { + color: #ffffff; + text-decoration: underline; +} +/*component states*/ +.ui-default-state { + border: 1px solid #666666; + background: #555555 url(images/555555_40x100_textures_02_glass_20.png) 0 50% repeat-x; + font-weight: bold; + color: #eeeeee !important; +} +.ui-default-state a { + color: #eeeeee; +} +.ui-default-state:hover, .ui-hover-state { + border: 1px solid #4bd94b; + background: #0078a3 url(images/0078a3_40x100_textures_02_glass_40.png) 0 50% repeat-x; + font-weight: bold; + color: #ffffff !important; +} +.ui-hover-state a { + color: #ffffff; +} +.ui-default-state:active, .ui-active-state { + border: 1px solid #ffaf0f; + background: #f58400 url(images/f58400_40x100_textures_05_inset_soft_30.png) 0 50% repeat-x; + font-weight: bold; + color: #ffffff !important; + outline: none; +} +.ui-active-state a { + color: #ffffff; + outline: none; +} +/*icons*/ +.ui-arrow-right-default {background: url(images/cccccc_7x7_arrow_right.gif) no-repeat 50% 50%;} +.ui-arrow-right-default:hover, .ui-arrow-right-hover {background: url(images/ffffff_7x7_arrow_right.gif) no-repeat 50% 50%;} +.ui-arrow-right-default:active, .ui-arrow-right-active {background: url(images/222222_7x7_arrow_right.gif) no-repeat 50% 50%;} +.ui-arrow-right-content {background: url(images/cccccc_7x7_arrow_right.gif) no-repeat 50% 50%;} + +.ui-arrow-left-default {background: url(images/cccccc_7x7_arrow_left.gif) no-repeat 50% 50%;} +.ui-arrow-left-default:hover, .ui-arrow-left-hover {background: url(images/ffffff_7x7_arrow_left.gif) no-repeat 50% 50%;} +.ui-arrow-left-default:active, .ui-arrow-left-active {background: url(images/222222_7x7_arrow_left.gif) no-repeat 50% 50%;} +.ui-arrow-left-content {background: url(images/cccccc_7x7_arrow_left.gif) no-repeat 50% 50%;} + +.ui-arrow-down-default {background: url(images/cccccc_7x7_arrow_down.gif) no-repeat 50% 50%;} +.ui-arrow-down-default:hover, .ui-arrow-down-hover {background: url(images/ffffff_7x7_arrow_down.gif) no-repeat 50% 50%;} +.ui-arrow-down-default:active, .ui-arrow-down-active {background: url(images/222222_7x7_arrow_down.gif) no-repeat 50% 50%;} +.ui-arrow-down-content {background: url(images/cccccc_7x7_arrow_down.gif) no-repeat 50% 50%;} + +.ui-arrow-up-default {background: url(images/cccccc_7x7_arrow_up.gif) no-repeat 50% 50%;} +.ui-arrow-up-default:hover, .ui-arrow-up-hover {background: url(images/ffffff_7x7_arrow_up.gif) no-repeat 50% 50%;} +.ui-arrow-up-default:active, .ui-arrow-up-active {background: url(images/222222_7x7_arrow_up.gif) no-repeat 50% 50%;} +.ui-arrow-up-content {background: url(images/cccccc_7x7_arrow_up.gif) no-repeat 50% 50%;} + +.ui-close-default {background: url(images/cccccc_11x11_icon_close.gif) no-repeat 50% 50%;} +.ui-close-default:hover, .ui-close-hover {background: url(images/ffffff_11x11_icon_close.gif) no-repeat 50% 50%;} +.ui-close-default:active, .ui-close-active {background: url(images/222222_11x11_icon_close.gif) no-repeat 50% 50%;} +.ui-close-content {background: url(images/222222_11x11_icon_close.gif) no-repeat 50% 50%;} + +.ui-folder-closed-default {background: url(images/cccccc_11x11_icon_folder_closed.gif) no-repeat 50% 50%;} +.ui-folder-closed-default:hover, .ui-folder-closed-hover {background: url(images/ffffff_11x11_icon_folder_closed.gif) no-repeat 50% 50%;} +.ui-folder-closed-default:active, .ui-folder-closed-active {background: url(images/222222_11x11_icon_folder_closed.gif) no-repeat 50% 50%;} +.ui-folder-closed-content {background: url(images/cccccc_11x11_icon_folder_closed.gif) no-repeat 50% 50%;} + +.ui-folder-open-default {background: url(images/cccccc_11x11_icon_folder_open.gif) no-repeat 50% 50%;} +.ui-folder-open-default:hover, .ui-folder-open-hover {background: url(images/ffffff_11x11_icon_folder_open.gif) no-repeat 50% 50%;} +.ui-folder-open-default:active, .ui-folder-open-active {background: url(images/222222_11x11_icon_folder_open.gif) no-repeat 50% 50%;} +.ui-folder-open-content {background: url(images/222222_11x11_icon_folder_open.gif) no-repeat 50% 50%;} + +.ui-doc-default {background: url(images/cccccc_11x11_icon_doc.gif) no-repeat 50% 50%;} +.ui-doc-default:hover, .ui-doc-hover {background: url(images/ffffff_11x11_icon_doc.gif) no-repeat 50% 50%;} +.ui-doc-default:active, .ui-doc-active {background: url(images/222222_11x11_icon_doc.gif) no-repeat 50% 50%;} +.ui-doc-content {background: url(images/cccccc_11x11_icon_doc.gif) no-repeat 50% 50%;} + +.ui-arrows-leftright-default {background: url(images/cccccc_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;} +.ui-arrows-leftright-default:hover, .ui-arrows-leftright-hover {background: url(images/ffffff_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;} +.ui-arrows-leftright-default:active, .ui-arrows-leftright-active {background: url(images/222222_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;} +.ui-arrows-leftright-content {background: url(images/cccccc_11x11_icon_arrows_leftright.gif) no-repeat 50% 50%;} + +.ui-arrows-updown-default {background: url(images/cccccc_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;} +.ui-arrows-updown-default:hover, .ui-arrows-updown-hover {background: url(images/ffffff_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;} +.ui-arrows-updown-default:active, .ui-arrows-updown-active {background: url(images/222222_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;} +.ui-arrows-updown-content {background: url(images/cccccc_11x11_icon_arrows_updown.gif) no-repeat 50% 50%;} + +.ui-minus-default {background: url(images/cccccc_11x11_icon_minus.gif) no-repeat 50% 50%;} +.ui-minus-default:hover, .ui-minus-hover {background: url(images/ffffff_11x11_icon_minus.gif) no-repeat 50% 50%;} +.ui-minus-default:active, .ui-minus-active {background: url(images/222222_11x11_icon_minus.gif) no-repeat 50% 50%;} +.ui-minus-content {background: url(images/cccccc_11x11_icon_minus.gif) no-repeat 50% 50%;} + +.ui-plus-default {background: url(images/cccccc_11x11_icon_plus.gif) no-repeat 50% 50%;} +.ui-plus-default:hover, .ui-plus-hover {background: url(images/ffffff_11x11_icon_plus.gif) no-repeat 50% 50%;} +.ui-plus-default:active, .ui-plus-active {background: url(images/222222_11x11_icon_plus.gif) no-repeat 50% 50%;} +.ui-plus-content {background: url(images/cccccc_11x11_icon_plus.gif) no-repeat 50% 50%;} + +/*hidden elements*/ +.ui-hidden { + display: none;/* for accessible hiding: position: absolute; left: -99999999px*/; +} +.ui-accessible-hidden { + position: absolute; left: -99999999px; +} +/*reset styles*/ +.ui-reset { + /*resets*/margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; +} +/*clearfix class*/ +.ui-clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +.ui-clearfix {display: block;} +/* Hides from IE-mac \*/ +* html .ui-clearfix {height: 1%;} +.ui-clearfix {display: block;} +/* End hide from IE-mac */ + +/* Note: for resizable styles, use the styles listed above in the dialog section */ + + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/js/jquery-1.2.6.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/js/jquery-1.2.6.min.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,32 @@ +/* + * jQuery 1.2.6 - New Wave Javascript + * + * Copyright (c) 2008 John Resig (jquery.com) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * $Date: 2008-05-24 14:22:17 -0400 (Sat, 24 May 2008) $ + * $Rev: 5685 $ + */ +(function(){var _jQuery=window.jQuery,_$=window.$;var jQuery=window.jQuery=window.$=function(selector,context){return new jQuery.fn.init(selector,context);};var quickExpr=/^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/,isSimple=/^.[^:#\[\.]*$/,undefined;jQuery.fn=jQuery.prototype={init:function(selector,context){selector=selector||document;if(selector.nodeType){this[0]=selector;this.length=1;return this;}if(typeof selector=="string"){var match=quickExpr.exec(selector);if(match&&(match[1]||!context)){if(match[1])selector=jQuery.clean([match[1]],context);else{var elem=document.getElementById(match[3]);if(elem){if(elem.id!=match[3])return jQuery().find(selector);return jQuery(elem);}selector=[];}}else +return jQuery(context).find(selector);}else if(jQuery.isFunction(selector))return jQuery(document)[jQuery.fn.ready?"ready":"load"](selector);return this.setArray(jQuery.makeArray(selector));},jquery:"1.2.6",size:function(){return this.length;},length:0,get:function(num){return num==undefined?jQuery.makeArray(this):this[num];},pushStack:function(elems){var ret=jQuery(elems);ret.prevObject=this;return ret;},setArray:function(elems){this.length=0;Array.prototype.push.apply(this,elems);return this;},each:function(callback,args){return jQuery.each(this,callback,args);},index:function(elem){var ret=-1;return jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this);},attr:function(name,value,type){var options=name;if(name.constructor==String)if(value===undefined)return this[0]&&jQuery[type||"attr"](this[0],name);else{options={};options[name]=value;}return this.each(function(i){for(name in options)jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[name],type,i,name));});},css:function(key,value){if((key=='width'||key=='height')&&parseFloat(value)<0)value=undefined;return this.attr(key,value,"curCSS");},text:function(text){if(typeof text!="object"&&text!=null)return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(text));var ret="";jQuery.each(text||this,function(){jQuery.each(this.childNodes,function(){if(this.nodeType!=8)ret+=this.nodeType!=1?this.nodeValue:jQuery.fn.text([this]);});});return ret;},wrapAll:function(html){if(this[0])jQuery(html,this[0].ownerDocument).clone().insertBefore(this[0]).map(function(){var elem=this;while(elem.firstChild)elem=elem.firstChild;return elem;}).append(this);return this;},wrapInner:function(html){return this.each(function(){jQuery(this).contents().wrapAll(html);});},wrap:function(html){return this.each(function(){jQuery(this).wrapAll(html);});},append:function(){return this.domManip(arguments,true,false,function(elem){if(this.nodeType==1)this.appendChild(elem);});},prepend:function(){return this.domManip(arguments,true,true,function(elem){if(this.nodeType==1)this.insertBefore(elem,this.firstChild);});},before:function(){return this.domManip(arguments,false,false,function(elem){this.parentNode.insertBefore(elem,this);});},after:function(){return this.domManip(arguments,false,true,function(elem){this.parentNode.insertBefore(elem,this.nextSibling);});},end:function(){return this.prevObject||jQuery([]);},find:function(selector){var elems=jQuery.map(this,function(elem){return jQuery.find(selector,elem);});return this.pushStack(/[^+>] [^+>]/.test(selector)||selector.indexOf("..")>-1?jQuery.unique(elems):elems);},clone:function(events){var ret=this.map(function(){if(jQuery.browser.msie&&!jQuery.isXMLDoc(this)){var clone=this.cloneNode(true),container=document.createElement("div");container.appendChild(clone);return jQuery.clean([container.innerHTML])[0];}else +return this.cloneNode(true);});var clone=ret.find("*").andSelf().each(function(){if(this[expando]!=undefined)this[expando]=null;});if(events===true)this.find("*").andSelf().each(function(i){if(this.nodeType==3)return;var events=jQuery.data(this,"events");for(var type in events)for(var handler in events[type])jQuery.event.add(clone[i],type,events[type][handler],events[type][handler].data);});return ret;},filter:function(selector){return this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(elem,i){return selector.call(elem,i);})||jQuery.multiFilter(selector,this));},not:function(selector){if(selector.constructor==String)if(isSimple.test(selector))return this.pushStack(jQuery.multiFilter(selector,this,true));else +selector=jQuery.multiFilter(selector,this);var isArrayLike=selector.length&&selector[selector.length-1]!==undefined&&!selector.nodeType;return this.filter(function(){return isArrayLike?jQuery.inArray(this,selector)<0:this!=selector;});},add:function(selector){return this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof selector=='string'?jQuery(selector):jQuery.makeArray(selector))));},is:function(selector){return!!selector&&jQuery.multiFilter(selector,this).length>0;},hasClass:function(selector){return this.is("."+selector);},val:function(value){if(value==undefined){if(this.length){var elem=this[0];if(jQuery.nodeName(elem,"select")){var index=elem.selectedIndex,values=[],options=elem.options,one=elem.type=="select-one";if(index<0)return null;for(var i=one?index:0,max=one?index+1:options.length;i=0||jQuery.inArray(this.name,value)>=0);else if(jQuery.nodeName(this,"select")){var values=jQuery.makeArray(value);jQuery("option",this).each(function(){this.selected=(jQuery.inArray(this.value,values)>=0||jQuery.inArray(this.text,values)>=0);});if(!values.length)this.selectedIndex=-1;}else +this.value=value;});},html:function(value){return value==undefined?(this[0]?this[0].innerHTML:null):this.empty().append(value);},replaceWith:function(value){return this.after(value).remove();},eq:function(i){return this.slice(i,i+1);},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments));},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem);}));},andSelf:function(){return this.add(this.prevObject);},data:function(key,value){var parts=key.split(".");parts[1]=parts[1]?"."+parts[1]:"";if(value===undefined){var data=this.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data===undefined&&this.length)data=jQuery.data(this[0],key);return data===undefined&&parts[1]?this.data(parts[0]):data;}else +return this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQuery.data(this,key,value);});},removeData:function(key){return this.each(function(){jQuery.removeData(this,key);});},domManip:function(args,table,reverse,callback){var clone=this.length>1,elems;return this.each(function(){if(!elems){elems=jQuery.clean(args,this.ownerDocument);if(reverse)elems.reverse();}var obj=this;if(table&&jQuery.nodeName(this,"table")&&jQuery.nodeName(elems[0],"tr"))obj=this.getElementsByTagName("tbody")[0]||this.appendChild(this.ownerDocument.createElement("tbody"));var scripts=jQuery([]);jQuery.each(elems,function(){var elem=clone?jQuery(this).clone(true)[0]:this;if(jQuery.nodeName(elem,"script"))scripts=scripts.add(elem);else{if(elem.nodeType==1)scripts=scripts.add(jQuery("script",elem).remove());callback.call(obj,elem);}});scripts.each(evalScript);});}};jQuery.fn.init.prototype=jQuery.fn;function evalScript(i,elem){if(elem.src)jQuery.ajax({url:elem.src,async:false,dataType:"script"});else +jQuery.globalEval(elem.text||elem.textContent||elem.innerHTML||"");if(elem.parentNode)elem.parentNode.removeChild(elem);}function now(){return+new Date;}jQuery.extend=jQuery.fn.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(target.constructor==Boolean){deep=target;target=arguments[1]||{};i=2;}if(typeof target!="object"&&typeof target!="function")target={};if(length==i){target=this;--i;}for(;i-1;}},swap:function(elem,options,callback){var old={};for(var name in options){old[name]=elem.style[name];elem.style[name]=options[name];}callback.call(elem);for(var name in options)elem.style[name]=old[name];},css:function(elem,name,force){if(name=="width"||name=="height"){var val,props={position:"absolute",visibility:"hidden",display:"block"},which=name=="width"?["Left","Right"]:["Top","Bottom"];function getWH(){val=name=="width"?elem.offsetWidth:elem.offsetHeight;var padding=0,border=0;jQuery.each(which,function(){padding+=parseFloat(jQuery.curCSS(elem,"padding"+this,true))||0;border+=parseFloat(jQuery.curCSS(elem,"border"+this+"Width",true))||0;});val-=Math.round(padding+border);}if(jQuery(elem).is(":visible"))getWH();else +jQuery.swap(elem,props,getWH);return Math.max(0,val);}return jQuery.curCSS(elem,name,force);},curCSS:function(elem,name,force){var ret,style=elem.style;function color(elem){if(!jQuery.browser.safari)return false;var ret=defaultView.getComputedStyle(elem,null);return!ret||ret.getPropertyValue("color")=="";}if(name=="opacity"&&jQuery.browser.msie){ret=jQuery.attr(style,"opacity");return ret==""?"1":ret;}if(jQuery.browser.opera&&name=="display"){var save=style.outline;style.outline="0 solid black";style.outline=save;}if(name.match(/float/i))name=styleFloat;if(!force&&style&&style[name])ret=style[name];else if(defaultView.getComputedStyle){if(name.match(/float/i))name="float";name=name.replace(/([A-Z])/g,"-$1").toLowerCase();var computedStyle=defaultView.getComputedStyle(elem,null);if(computedStyle&&!color(elem))ret=computedStyle.getPropertyValue(name);else{var swap=[],stack=[],a=elem,i=0;for(;a&&color(a);a=a.parentNode)stack.unshift(a);for(;i]*?)\/>/g,function(all,front,tag){return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all:front+">";});var tags=jQuery.trim(elem).toLowerCase(),div=context.createElement("div");var wrap=!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!tags.indexOf("",""]||(!tags.indexOf("",""]||!tags.indexOf("",""]||jQuery.browser.msie&&[1,"div
","
"]||[0,"",""];div.innerHTML=wrap[1]+elem+wrap[2];while(wrap[0]--)div=div.lastChild;if(jQuery.browser.msie){var tbody=!tags.indexOf(""&&tags.indexOf("=0;--j)if(jQuery.nodeName(tbody[j],"tbody")&&!tbody[j].childNodes.length)tbody[j].parentNode.removeChild(tbody[j]);if(/^\s/.test(elem))div.insertBefore(context.createTextNode(elem.match(/^\s*/)[0]),div.firstChild);}elem=jQuery.makeArray(div.childNodes);}if(elem.length===0&&(!jQuery.nodeName(elem,"form")&&!jQuery.nodeName(elem,"select")))return;if(elem[0]==undefined||jQuery.nodeName(elem,"form")||elem.options)ret.push(elem);else +ret=jQuery.merge(ret,elem);});return ret;},attr:function(elem,name,value){if(!elem||elem.nodeType==3||elem.nodeType==8)return undefined;var notxml=!jQuery.isXMLDoc(elem),set=value!==undefined,msie=jQuery.browser.msie;name=notxml&&jQuery.props[name]||name;if(elem.tagName){var special=/href|src|style/.test(name);if(name=="selected"&&jQuery.browser.safari)elem.parentNode.selectedIndex;if(name in elem&¬xml&&!special){if(set){if(name=="type"&&jQuery.nodeName(elem,"input")&&elem.parentNode)throw"type property can't be changed";elem[name]=value;}if(jQuery.nodeName(elem,"form")&&elem.getAttributeNode(name))return elem.getAttributeNode(name).nodeValue;return elem[name];}if(msie&¬xml&&name=="style")return jQuery.attr(elem.style,"cssText",value);if(set)elem.setAttribute(name,""+value);var attr=msie&¬xml&&special?elem.getAttribute(name,2):elem.getAttribute(name);return attr===null?undefined:attr;}if(msie&&name=="opacity"){if(set){elem.zoom=1;elem.filter=(elem.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(value)+''=="NaN"?"":"alpha(opacity="+value*100+")");}return elem.filter&&elem.filter.indexOf("opacity=")>=0?(parseFloat(elem.filter.match(/opacity=([^)]*)/)[1])/100)+'':"";}name=name.replace(/-([a-z])/ig,function(all,letter){return letter.toUpperCase();});if(set)elem[name]=value;return elem[name];},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},makeArray:function(array){var ret=[];if(array!=null){var i=array.length;if(i==null||array.split||array.setInterval||array.call)ret[0]=array;else +while(i)ret[--i]=array[i];}return ret;},inArray:function(elem,array){for(var i=0,length=array.length;i*",this).remove();while(this.firstChild)this.removeChild(this.firstChild);}},function(name,fn){jQuery.fn[name]=function(){return this.each(fn,arguments);};});jQuery.each(["Height","Width"],function(i,name){var type=name.toLowerCase();jQuery.fn[type]=function(size){return this[0]==window?jQuery.browser.opera&&document.body["client"+name]||jQuery.browser.safari&&window["inner"+name]||document.compatMode=="CSS1Compat"&&document.documentElement["client"+name]||document.body["client"+name]:this[0]==document?Math.max(Math.max(document.body["scroll"+name],document.documentElement["scroll"+name]),Math.max(document.body["offset"+name],document.documentElement["offset"+name])):size==undefined?(this.length?jQuery.css(this[0],type):null):this.css(type,size.constructor==String?size:size+"px");};});function num(elem,prop){return elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0;}var chars=jQuery.browser.safari&&parseInt(jQuery.browser.version)<417?"(?:[\\w*_-]|\\\\.)":"(?:[\\w\u0128-\uFFFF*_-]|\\\\.)",quickChild=new RegExp("^>\\s*("+chars+"+)"),quickID=new RegExp("^("+chars+"+)(#)("+chars+"+)"),quickClass=new RegExp("^([#.]?)("+chars+"*)");jQuery.extend({expr:{"":function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},"#":function(a,i,m){return a.getAttribute("id")==m[2];},":":{lt:function(a,i,m){return im[3]-0;},nth:function(a,i,m){return m[3]-0==i;},eq:function(a,i,m){return m[3]-0==i;},first:function(a,i){return i==0;},last:function(a,i,m,r){return i==r.length-1;},even:function(a,i){return i%2==0;},odd:function(a,i){return i%2;},"first-child":function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},"last-child":function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},"only-child":function(a){return!jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},parent:function(a){return a.firstChild;},empty:function(a){return!a.firstChild;},contains:function(a,i,m){return(a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},visible:function(a){return"hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},hidden:function(a){return"hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},enabled:function(a){return!a.disabled;},disabled:function(a){return a.disabled;},checked:function(a){return a.checked;},selected:function(a){return a.selected||jQuery.attr(a,"selected");},text:function(a){return"text"==a.type;},radio:function(a){return"radio"==a.type;},checkbox:function(a){return"checkbox"==a.type;},file:function(a){return"file"==a.type;},password:function(a){return"password"==a.type;},submit:function(a){return"submit"==a.type;},image:function(a){return"image"==a.type;},reset:function(a){return"reset"==a.type;},button:function(a){return"button"==a.type||jQuery.nodeName(a,"button");},input:function(a){return/input|select|textarea|button/i.test(a.nodeName);},has:function(a,i,m){return jQuery.find(m[3],a).length;},header:function(a){return/h\d/i.test(a.nodeName);},animated:function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}}},parse:[/^(\[) *@?([\w-]+) *([!*$^~=]*) *('?"?)(.*?)\4 *\]/,/^(:)([\w-]+)\("?'?(.*?(\(.*?\))?[^(]*?)"?'?\)/,new RegExp("^([:.#]*)("+chars+"+)")],multiFilter:function(expr,elems,not){var old,cur=[];while(expr&&expr!=old){old=expr;var f=jQuery.filter(expr,elems,not);expr=f.t.replace(/^\s*,\s*/,"");cur=not?elems=f.r:jQuery.merge(cur,f.r);}return cur;},find:function(t,context){if(typeof t!="string")return[t];if(context&&context.nodeType!=1&&context.nodeType!=9)return[];context=context||document;var ret=[context],done=[],last,nodeName;while(t&&last!=t){var r=[];last=t;t=jQuery.trim(t);var foundToken=false,re=quickChild,m=re.exec(t);if(m){nodeName=m[1].toUpperCase();for(var i=0;ret[i];i++)for(var c=ret[i].firstChild;c;c=c.nextSibling)if(c.nodeType==1&&(nodeName=="*"||c.nodeName.toUpperCase()==nodeName))r.push(c);ret=r;t=t.replace(re,"");if(t.indexOf(" ")==0)continue;foundToken=true;}else{re=/^([>+~])\s*(\w*)/i;if((m=re.exec(t))!=null){r=[];var merge={};nodeName=m[2].toUpperCase();m=m[1];for(var j=0,rl=ret.length;j=0;if(!not&&pass||not&&!pass)tmp.push(r[i]);}return tmp;},filter:function(t,r,not){var last;while(t&&t!=last){last=t;var p=jQuery.parse,m;for(var i=0;p[i];i++){m=p[i].exec(t);if(m){t=t.substring(m[0].length);m[2]=m[2].replace(/\\/g,"");break;}}if(!m)break;if(m[1]==":"&&m[2]=="not")r=isSimple.test(m[3])?jQuery.filter(m[3],r,true).r:jQuery(r).not(m[3]);else if(m[1]==".")r=jQuery.classFilter(r,m[2],not);else if(m[1]=="["){var tmp=[],type=m[3];for(var i=0,rl=r.length;i=0)^not)tmp.push(a);}r=tmp;}else if(m[1]==":"&&m[2]=="nth-child"){var merge={},tmp=[],test=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(m[3]=="even"&&"2n"||m[3]=="odd"&&"2n+1"||!/\D/.test(m[3])&&"0n+"+m[3]||m[3]),first=(test[1]+(test[2]||1))-0,last=test[3]-0;for(var i=0,rl=r.length;i=0)add=true;if(add^not)tmp.push(node);}r=tmp;}else{var fn=jQuery.expr[m[1]];if(typeof fn=="object")fn=fn[m[2]];if(typeof fn=="string")fn=eval("false||function(a,i){return "+fn+";}");r=jQuery.grep(r,function(elem,i){return fn(elem,i,m,r);},not);}}return{r:r,t:t};},dir:function(elem,dir){var matched=[],cur=elem[dir];while(cur&&cur!=document){if(cur.nodeType==1)matched.push(cur);cur=cur[dir];}return matched;},nth:function(cur,result,dir,elem){result=result||1;var num=0;for(;cur;cur=cur[dir])if(cur.nodeType==1&&++num==result)break;return cur;},sibling:function(n,elem){var r=[];for(;n;n=n.nextSibling){if(n.nodeType==1&&n!=elem)r.push(n);}return r;}});jQuery.event={add:function(elem,types,handler,data){if(elem.nodeType==3||elem.nodeType==8)return;if(jQuery.browser.msie&&elem.setInterval)elem=window;if(!handler.guid)handler.guid=this.guid++;if(data!=undefined){var fn=handler;handler=this.proxy(fn,function(){return fn.apply(this,arguments);});handler.data=data;}var events=jQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle=jQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){if(typeof jQuery!="undefined"&&!jQuery.event.triggered)return jQuery.event.handle.apply(arguments.callee.elem,arguments);});handle.elem=elem;jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];handler.type=parts[1];var handlers=events[type];if(!handlers){handlers=events[type]={};if(!jQuery.event.special[type]||jQuery.event.special[type].setup.call(elem)===false){if(elem.addEventListener)elem.addEventListener(type,handle,false);else if(elem.attachEvent)elem.attachEvent("on"+type,handle);}}handlers[handler.guid]=handler;jQuery.event.global[type]=true;});elem=null;},guid:1,global:{},remove:function(elem,types,handler){if(elem.nodeType==3||elem.nodeType==8)return;var events=jQuery.data(elem,"events"),ret,index;if(events){if(types==undefined||(typeof types=="string"&&types.charAt(0)=="."))for(var type in events)this.remove(elem,type+(types||""));else{if(types.type){handler=types.handler;types=types.type;}jQuery.each(types.split(/\s+/),function(index,type){var parts=type.split(".");type=parts[0];if(events[type]){if(handler)delete events[type][handler.guid];else +for(handler in events[type])if(!parts[1]||events[type][handler].type==parts[1])delete events[type][handler];for(ret in events[type])break;if(!ret){if(!jQuery.event.special[type]||jQuery.event.special[type].teardown.call(elem)===false){if(elem.removeEventListener)elem.removeEventListener(type,jQuery.data(elem,"handle"),false);else if(elem.detachEvent)elem.detachEvent("on"+type,jQuery.data(elem,"handle"));}ret=null;delete events[type];}}});}for(ret in events)break;if(!ret){var handle=jQuery.data(elem,"handle");if(handle)handle.elem=null;jQuery.removeData(elem,"events");jQuery.removeData(elem,"handle");}}},trigger:function(type,data,elem,donative,extra){data=jQuery.makeArray(data);if(type.indexOf("!")>=0){type=type.slice(0,-1);var exclusive=true;}if(!elem){if(this.global[type])jQuery("*").add([window,document]).trigger(type,data);}else{if(elem.nodeType==3||elem.nodeType==8)return undefined;var val,ret,fn=jQuery.isFunction(elem[type]||null),event=!data[0]||!data[0].preventDefault;if(event){data.unshift({type:type,target:elem,preventDefault:function(){},stopPropagation:function(){},timeStamp:now()});data[0][expando]=true;}data[0].type=type;if(exclusive)data[0].exclusive=true;var handle=jQuery.data(elem,"handle");if(handle)val=handle.apply(elem,data);if((!fn||(jQuery.nodeName(elem,'a')&&type=="click"))&&elem["on"+type]&&elem["on"+type].apply(elem,data)===false)val=false;if(event)data.shift();if(extra&&jQuery.isFunction(extra)){ret=extra.apply(elem,val==null?data:data.concat(val));if(ret!==undefined)val=ret;}if(fn&&donative!==false&&val!==false&&!(jQuery.nodeName(elem,'a')&&type=="click")){this.triggered=true;try{elem[type]();}catch(e){}}this.triggered=false;}return val;},handle:function(event){var val,ret,namespace,all,handlers;event=arguments[0]=jQuery.event.fix(event||window.event);namespace=event.type.split(".");event.type=namespace[0];namespace=namespace[1];all=!namespace&&!event.exclusive;handlers=(jQuery.data(this,"events")||{})[event.type];for(var j in handlers){var handler=handlers[j];if(all||handler.type==namespace){event.handler=handler;event.data=handler.data;ret=handler.apply(this,arguments);if(val!==false)val=ret;if(ret===false){event.preventDefault();event.stopPropagation();}}}return val;},fix:function(event){if(event[expando]==true)return event;var originalEvent=event;event={originalEvent:originalEvent};var props="altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target timeStamp toElement type view wheelDelta which".split(" ");for(var i=props.length;i;i--)event[props[i]]=originalEvent[props[i]];event[expando]=true;event.preventDefault=function(){if(originalEvent.preventDefault)originalEvent.preventDefault();originalEvent.returnValue=false;};event.stopPropagation=function(){if(originalEvent.stopPropagation)originalEvent.stopPropagation();originalEvent.cancelBubble=true;};event.timeStamp=event.timeStamp||now();if(!event.target)event.target=event.srcElement||document;if(event.target.nodeType==3)event.target=event.target.parentNode;if(!event.relatedTarget&&event.fromElement)event.relatedTarget=event.fromElement==event.target?event.toElement:event.fromElement;if(event.pageX==null&&event.clientX!=null){var doc=document.documentElement,body=document.body;event.pageX=event.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0);event.pageY=event.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc.clientTop||0);}if(!event.which&&((event.charCode||event.charCode===0)?event.charCode:event.keyCode))event.which=event.charCode||event.keyCode;if(!event.metaKey&&event.ctrlKey)event.metaKey=event.ctrlKey;if(!event.which&&event.button)event.which=(event.button&1?1:(event.button&2?3:(event.button&4?2:0)));return event;},proxy:function(fn,proxy){proxy.guid=fn.guid=fn.guid||proxy.guid||this.guid++;return proxy;},special:{ready:{setup:function(){bindReady();return;},teardown:function(){return;}},mouseenter:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseover",jQuery.event.special.mouseenter.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseover",jQuery.event.special.mouseenter.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseenter";return jQuery.event.handle.apply(this,arguments);}},mouseleave:{setup:function(){if(jQuery.browser.msie)return false;jQuery(this).bind("mouseout",jQuery.event.special.mouseleave.handler);return true;},teardown:function(){if(jQuery.browser.msie)return false;jQuery(this).unbind("mouseout",jQuery.event.special.mouseleave.handler);return true;},handler:function(event){if(withinElement(event,this))return true;event.type="mouseleave";return jQuery.event.handle.apply(this,arguments);}}}};jQuery.fn.extend({bind:function(type,data,fn){return type=="unload"?this.one(type,data,fn):this.each(function(){jQuery.event.add(this,type,fn||data,fn&&data);});},one:function(type,data,fn){var one=jQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(event,one);return(fn||data).apply(this,arguments);});return this.each(function(){jQuery.event.add(this,type,one,fn&&data);});},unbind:function(type,fn){return this.each(function(){jQuery.event.remove(this,type,fn);});},trigger:function(type,data,fn){return this.each(function(){jQuery.event.trigger(type,data,this,true,fn);});},triggerHandler:function(type,data,fn){return this[0]&&jQuery.event.trigger(type,data,this[0],false,fn);},toggle:function(fn){var args=arguments,i=1;while(i=0){var selector=url.slice(off,url.length);url=url.slice(0,off);}callback=callback||function(){};var type="GET";if(params)if(jQuery.isFunction(params)){callback=params;params=null;}else{params=jQuery.param(params);type="POST";}var self=this;jQuery.ajax({url:url,type:type,dataType:"html",data:params,complete:function(res,status){if(status=="success"||status=="notmodified")self.html(selector?jQuery("
").append(res.responseText.replace(//g,"")).find(selector):res.responseText);self.each(callback,[res.responseText,status,res]);}});return this;},serialize:function(){return jQuery.param(this.serializeArray());},serializeArray:function(){return this.map(function(){return jQuery.nodeName(this,"form")?jQuery.makeArray(this.elements):this;}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password/i.test(this.type));}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:val.constructor==Array?jQuery.map(val,function(val,i){return{name:elem.name,value:val};}):{name:elem.name,value:val};}).get();}});jQuery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(i,o){jQuery.fn[o]=function(f){return this.bind(o,f);};});var jsc=now();jQuery.extend({get:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data=null;}return jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type});},getScript:function(url,callback){return jQuery.get(url,null,callback,"script");},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json");},post:function(url,data,callback,type){if(jQuery.isFunction(data)){callback=data;data={};}return jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type});},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settings);},ajaxSettings:{url:location.href,global:true,type:"GET",timeout:0,contentType:"application/x-www-form-urlencoded",processData:true,async:true,data:null,username:null,password:null,accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(s){s=jQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSettings,s));var jsonp,jsre=/=\?(&|$)/g,status,data,type=s.type.toUpperCase();if(s.data&&s.processData&&typeof s.data!="string")s.data=jQuery.param(s.data);if(s.dataType=="jsonp"){if(type=="GET"){if(!s.url.match(jsre))s.url+=(s.url.match(/\?/)?"&":"?")+(s.jsonp||"callback")+"=?";}else if(!s.data||!s.data.match(jsre))s.data=(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=?";s.dataType="json";}if(s.dataType=="json"&&(s.data&&s.data.match(jsre)||s.url.match(jsre))){jsonp="jsonp"+jsc++;if(s.data)s.data=(s.data+"").replace(jsre,"="+jsonp+"$1");s.url=s.url.replace(jsre,"="+jsonp+"$1");s.dataType="script";window[jsonp]=function(tmp){data=tmp;success();complete();window[jsonp]=undefined;try{delete window[jsonp];}catch(e){}if(head)head.removeChild(script);};}if(s.dataType=="script"&&s.cache==null)s.cache=false;if(s.cache===false&&type=="GET"){var ts=now();var ret=s.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+ts+"$2");s.url=ret+((ret==s.url)?(s.url.match(/\?/)?"&":"?")+"_="+ts:"");}if(s.data&&type=="GET"){s.url+=(s.url.match(/\?/)?"&":"?")+s.data;s.data=null;}if(s.global&&!jQuery.active++)jQuery.event.trigger("ajaxStart");var remote=/^(?:\w+:)?\/\/([^\/?#]+)/;if(s.dataType=="script"&&type=="GET"&&remote.test(s.url)&&remote.exec(s.url)[1]!=location.host){var head=document.getElementsByTagName("head")[0];var script=document.createElement("script");script.src=s.url;if(s.scriptCharset)script.charset=s.scriptCharset;if(!jsonp){var done=false;script.onload=script.onreadystatechange=function(){if(!done&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){done=true;success();complete();head.removeChild(script);}};}head.appendChild(script);return undefined;}var requestDone=false;var xhr=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(s.username)xhr.open(type,s.url,s.async,s.username,s.password);else +xhr.open(type,s.url,s.async);try{if(s.data)xhr.setRequestHeader("Content-Type",s.contentType);if(s.ifModified)xhr.setRequestHeader("If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 00:00:00 GMT");xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRequestHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataType]+", */*":s.accepts._default);}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)===false){s.global&&jQuery.active--;xhr.abort();return false;}if(s.global)jQuery.event.trigger("ajaxSend",[xhr,s]);var onreadystatechange=function(isTimeout){if(!requestDone&&xhr&&(xhr.readyState==4||isTimeout=="timeout")){requestDone=true;if(ival){clearInterval(ival);ival=null;}status=isTimeout=="timeout"&&"timeout"||!jQuery.httpSuccess(xhr)&&"error"||s.ifModified&&jQuery.httpNotModified(xhr,s.url)&&"notmodified"||"success";if(status=="success"){try{data=jQuery.httpData(xhr,s.dataType,s.dataFilter);}catch(e){status="parsererror";}}if(status=="success"){var modRes;try{modRes=xhr.getResponseHeader("Last-Modified");}catch(e){}if(s.ifModified&&modRes)jQuery.lastModified[s.url]=modRes;if(!jsonp)success();}else +jQuery.handleError(s,xhr,status);complete();if(s.async)xhr=null;}};if(s.async){var ival=setInterval(onreadystatechange,13);if(s.timeout>0)setTimeout(function(){if(xhr){xhr.abort();if(!requestDone)onreadystatechange("timeout");}},s.timeout);}try{xhr.send(s.data);}catch(e){jQuery.handleError(s,xhr,null,e);}if(!s.async)onreadystatechange();function success(){if(s.success)s.success(data,status);if(s.global)jQuery.event.trigger("ajaxSuccess",[xhr,s]);}function complete(){if(s.complete)s.complete(xhr,status);if(s.global)jQuery.event.trigger("ajaxComplete",[xhr,s]);if(s.global&&!--jQuery.active)jQuery.event.trigger("ajaxStop");}return xhr;},handleError:function(s,xhr,status,e){if(s.error)s.error(xhr,status,e);if(s.global)jQuery.event.trigger("ajaxError",[xhr,s,e]);},active:0,httpSuccess:function(xhr){try{return!xhr.status&&location.protocol=="file:"||(xhr.status>=200&&xhr.status<300)||xhr.status==304||xhr.status==1223||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpNotModified:function(xhr,url){try{var xhrRes=xhr.getResponseHeader("Last-Modified");return xhr.status==304||xhrRes==jQuery.lastModified[url]||jQuery.browser.safari&&xhr.status==undefined;}catch(e){}return false;},httpData:function(xhr,type,filter){var ct=xhr.getResponseHeader("content-type"),xml=type=="xml"||!type&&ct&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.tagName=="parsererror")throw"parsererror";if(filter)data=filter(data,type);if(type=="script")jQuery.globalEval(data);if(type=="json")data=eval("("+data+")");return data;},param:function(a){var s=[];if(a.constructor==Array||a.jquery)jQuery.each(a,function(){s.push(encodeURIComponent(this.name)+"="+encodeURIComponent(this.value));});else +for(var j in a)if(a[j]&&a[j].constructor==Array)jQuery.each(a[j],function(){s.push(encodeURIComponent(j)+"="+encodeURIComponent(this));});else +s.push(encodeURIComponent(j)+"="+encodeURIComponent(jQuery.isFunction(a[j])?a[j]():a[j]));return s.join("&").replace(/%20/g,"+");}});jQuery.fn.extend({show:function(speed,callback){return speed?this.animate({height:"show",width:"show",opacity:"show"},speed,callback):this.filter(":hidden").each(function(){this.style.display=this.oldblock||"";if(jQuery.css(this,"display")=="none"){var elem=jQuery("<"+this.tagName+" />").appendTo("body");this.style.display=elem.css("display");if(this.style.display=="none")this.style.display="block";elem.remove();}}).end();},hide:function(speed,callback){return speed?this.animate({height:"hide",width:"hide",opacity:"hide"},speed,callback):this.filter(":visible").each(function(){this.oldblock=this.oldblock||jQuery.css(this,"display");this.style.display="none";}).end();},_toggle:jQuery.fn.toggle,toggle:function(fn,fn2){return jQuery.isFunction(fn)&&jQuery.isFunction(fn2)?this._toggle.apply(this,arguments):fn?this.animate({height:"toggle",width:"toggle",opacity:"toggle"},fn,fn2):this.each(function(){jQuery(this)[jQuery(this).is(":hidden")?"show":"hide"]();});},slideDown:function(speed,callback){return this.animate({height:"show"},speed,callback);},slideUp:function(speed,callback){return this.animate({height:"hide"},speed,callback);},slideToggle:function(speed,callback){return this.animate({height:"toggle"},speed,callback);},fadeIn:function(speed,callback){return this.animate({opacity:"show"},speed,callback);},fadeOut:function(speed,callback){return this.animate({opacity:"hide"},speed,callback);},fadeTo:function(speed,to,callback){return this.animate({opacity:to},speed,callback);},animate:function(prop,speed,easing,callback){var optall=jQuery.speed(speed,easing,callback);return this[optall.queue===false?"each":"queue"](function(){if(this.nodeType!=1)return false;var opt=jQuery.extend({},optall),p,hidden=jQuery(this).is(":hidden"),self=this;for(p in prop){if(prop[p]=="hide"&&hidden||prop[p]=="show"&&!hidden)return opt.complete.call(this);if(p=="height"||p=="width"){opt.display=jQuery.css(this,"display");opt.overflow=this.style.overflow;}}if(opt.overflow!=null)this.style.overflow="hidden";opt.curAnim=jQuery.extend({},prop);jQuery.each(prop,function(name,val){var e=new jQuery.fx(self,opt,name);if(/toggle|show|hide/.test(val))e[val=="toggle"?hidden?"show":"hide":val](prop);else{var parts=val.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),start=e.cur(true)||0;if(parts){var end=parseFloat(parts[2]),unit=parts[3]||"px";if(unit!="px"){self.style[name]=(end||1)+unit;start=((end||1)/e.cur(true))*start;self.style[name]=start+unit;}if(parts[1])end=((parts[1]=="-="?-1:1)*end)+start;e.custom(start,end,unit);}else +e.custom(start,val,"");}});return true;});},queue:function(type,fn){if(jQuery.isFunction(type)||(type&&type.constructor==Array)){fn=type;type="fx";}if(!type||(typeof type=="string"&&!fn))return queue(this[0],type);return this.each(function(){if(fn.constructor==Array)queue(this,type,fn);else{queue(this,type).push(fn);if(queue(this,type).length==1)fn.call(this);}});},stop:function(clearQueue,gotoEnd){var timers=jQuery.timers;if(clearQueue)this.queue([]);this.each(function(){for(var i=timers.length-1;i>=0;i--)if(timers[i].elem==this){if(gotoEnd)timers[i](true);timers.splice(i,1);}});if(!gotoEnd)this.dequeue();return this;}});var queue=function(elem,type,array){if(elem){type=type||"fx";var q=jQuery.data(elem,type+"queue");if(!q||array)q=jQuery.data(elem,type+"queue",jQuery.makeArray(array));}return q;};jQuery.fn.dequeue=function(type){type=type||"fx";return this.each(function(){var q=queue(this,type);q.shift();if(q.length)q[0].call(this);});};jQuery.extend({speed:function(speed,easing,fn){var opt=speed&&speed.constructor==Object?speed:{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&easing.constructor!=Function&&easing};opt.duration=(opt.duration&&opt.duration.constructor==Number?opt.duration:jQuery.fx.speeds[opt.duration])||jQuery.fx.speeds.def;opt.old=opt.complete;opt.complete=function(){if(opt.queue!==false)jQuery(this).dequeue();if(jQuery.isFunction(opt.old))opt.old.call(this);};return opt;},easing:{linear:function(p,n,firstNum,diff){return firstNum+diff*p;},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Math.PI)/2)+0.5)*diff+firstNum;}},timers:[],timerId:null,fx:function(elem,options,prop){this.options=options;this.elem=elem;this.prop=prop;if(!options.orig)options.orig={};}});jQuery.fx.prototype={update:function(){if(this.options.step)this.options.step.call(this.elem,this.now,this);(jQuery.fx.step[this.prop]||jQuery.fx.step._default)(this);if(this.prop=="height"||this.prop=="width")this.elem.style.display="block";},cur:function(force){if(this.elem[this.prop]!=null&&this.elem.style[this.prop]==null)return this.elem[this.prop];var r=parseFloat(jQuery.css(this.elem,this.prop,force));return r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0;},custom:function(from,to,unit){this.startTime=now();this.start=from;this.end=to;this.unit=unit||this.unit||"px";this.now=this.start;this.pos=this.state=0;this.update();var self=this;function t(gotoEnd){return self.step(gotoEnd);}t.elem=this.elem;jQuery.timers.push(t);if(jQuery.timerId==null){jQuery.timerId=setInterval(function(){var timers=jQuery.timers;for(var i=0;ithis.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var done=true;for(var i in this.options.curAnim)if(this.options.curAnim[i]!==true)done=false;if(done){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(jQuery.css(this.elem,"display")=="none")this.elem.style.display="block";}if(this.options.hide)this.elem.style.display="none";if(this.options.hide||this.options.show)for(var p in this.options.curAnim)jQuery.attr(this.elem.style,p,this.options.orig[p]);}if(done)this.options.complete.call(this.elem);return false;}else{var n=t-this.startTime;this.state=n/this.options.duration;this.pos=jQuery.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](this.state,n,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update();}return true;}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,def:400},step:{scrollLeft:function(fx){fx.elem.scrollLeft=fx.now;},scrollTop:function(fx){fx.elem.scrollTop=fx.now;},opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now);},_default:function(fx){fx.elem.style[fx.prop]=fx.now+fx.unit;}}});jQuery.fn.offset=function(){var left=0,top=0,elem=this[0],results;if(elem)with(jQuery.browser){var parent=elem.parentNode,offsetChild=elem,offsetParent=elem.offsetParent,doc=elem.ownerDocument,safari2=safari&&parseInt(version)<522&&!/adobeair/i.test(userAgent),css=jQuery.curCSS,fixed=css(elem,"position")=="fixed";if(elem.getBoundingClientRect){var box=elem.getBoundingClientRect();add(box.left+Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),box.top+Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));add(-doc.documentElement.clientLeft,-doc.documentElement.clientTop);}else{add(elem.offsetLeft,elem.offsetTop);while(offsetParent){add(offsetParent.offsetLeft,offsetParent.offsetTop);if(mozilla&&!/^t(able|d|h)$/i.test(offsetParent.tagName)||safari&&!safari2)border(offsetParent);if(!fixed&&css(offsetParent,"position")=="fixed")fixed=true;offsetChild=/^body$/i.test(offsetParent.tagName)?offsetChild:offsetParent;offsetParent=offsetParent.offsetParent;}while(parent&&parent.tagName&&!/^body|html$/i.test(parent.tagName)){if(!/^inline|table.*$/i.test(css(parent,"display")))add(-parent.scrollLeft,-parent.scrollTop);if(mozilla&&css(parent,"overflow")!="visible")border(parent);parent=parent.parentNode;}if((safari2&&(fixed||css(offsetChild,"position")=="absolute"))||(mozilla&&css(offsetChild,"position")!="absolute"))add(-doc.body.offsetLeft,-doc.body.offsetTop);if(fixed)add(Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft),Math.max(doc.documentElement.scrollTop,doc.body.scrollTop));}results={top:top,left:left};}function border(elem){add(jQuery.curCSS(elem,"borderLeftWidth",true),jQuery.curCSS(elem,"borderTopWidth",true));}function add(l,t){left+=parseInt(l,10)||0;top+=parseInt(t,10)||0;}return results;};jQuery.fn.extend({position:function(){var left=0,top=0,results;if(this[0]){var offsetParent=this.offsetParent(),offset=this.offset(),parentOffset=/^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.offset();offset.top-=num(this,'marginTop');offset.left-=num(this,'marginLeft');parentOffset.top+=num(offsetParent,'borderTopWidth');parentOffset.left+=num(offsetParent,'borderLeftWidth');results={top:offset.top-parentOffset.top,left:offset.left-parentOffset.left};}return results;},offsetParent:function(){var offsetParent=this[0].offsetParent;while(offsetParent&&(!/^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,'position')=='static'))offsetParent=offsetParent.offsetParent;return jQuery(offsetParent);}});jQuery.each(['Left','Top'],function(i,name){var method='scroll'+name;jQuery.fn[method]=function(val){if(!this[0])return;return val!=undefined?this.each(function(){this==window||this==document?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(window).scrollTop()):this[method]=val;}):this[0]==window||this[0]==document?self[i?'pageYOffset':'pageXOffset']||jQuery.boxModel&&document.documentElement[method]||document.body[method]:this[0][method];};});jQuery.each(["Height","Width"],function(i,name){var tl=i?"Left":"Top",br=i?"Right":"Bottom";jQuery.fn["inner"+name]=function(){return this[name.toLowerCase()]()+num(this,"padding"+tl)+num(this,"padding"+br);};jQuery.fn["outer"+name]=function(margin){return this["inner"+name]()+num(this,"border"+tl+"Width")+num(this,"border"+br+"Width")+(margin?num(this,"margin"+tl)+num(this,"margin"+br):0);};});})(); \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/js/jquery-ui-1.6.custom.min.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/jquery-ui/js/jquery-ui-1.6.custom.min.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,78 @@ +/* + * jQuery UI 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ (function(C){var I=C.fn.remove,D=C.browser.mozilla&&(parseFloat(C.browser.version)<1.9);C.ui={version:"1.6",plugin:{add:function(K,L,N){var M=C.ui[K].prototype;for(var J in N){M.plugins[J]=M.plugins[J]||[];M.plugins[J].push([L,N[J]])}},call:function(J,L,K){var N=J.plugins[L];if(!N){return }for(var M=0;M').addClass(J).css({position:"absolute",top:"-5000px",left:"-5000px",display:"block"}).appendTo("body");C.ui.cssCache[J]=!!((!(/auto|default/).test(K.css("cursor"))||(/^[1-9]/).test(K.css("height"))||(/^[1-9]/).test(K.css("width"))||!(/none/).test(K.css("backgroundImage"))||!(/transparent|rgba\(0, 0, 0, 0\)/).test(K.css("backgroundColor"))));try{C("body").get(0).removeChild(K.get(0))}catch(L){}return C.ui.cssCache[J]},hasScroll:function(M,K){if(C(M).css("overflow")=="hidden"){return false}var J=(K&&K=="left")?"scrollLeft":"scrollTop",L=false;if(M[J]>0){return true}M[J]=1;L=(M[J]>0);M[J]=0;return L},isOverAxis:function(K,J,L){return(K>J)&&(K<(J+L))},isOver:function(O,K,N,M,J,L){return C.ui.isOverAxis(O,N,J)&&C.ui.isOverAxis(K,M,L)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(D){var F=C.attr,E=C.fn.removeAttr,H="http://www.w3.org/2005/07/aaa",A=/^aria-/,B=/^wairole:/;C.attr=function(K,J,L){var M=L!==undefined;return(J=="role"?(M?F.call(this,K,J,"wairole:"+L):(F.apply(this,arguments)||"").replace(B,"")):(A.test(J)?(M?K.setAttributeNS(H,J.replace(A,"aaa:"),L):F.call(this,K,J.replace(A,"aaa:"))):F.apply(this,arguments)))};C.fn.removeAttr=function(J){return(A.test(J)?this.each(function(){this.removeAttributeNS(H,J.replace(A,""))}):E.call(this,J))}}C.fn.extend({remove:function(){C("*",this).add(this).each(function(){C(this).triggerHandler("remove")});return I.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var J;if((C.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){J=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(C.curCSS(this,"position",1))&&(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}else{J=this.parents().filter(function(){return(/(auto|scroll)/).test(C.curCSS(this,"overflow",1)+C.curCSS(this,"overflow-y",1)+C.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!J.length?C(document):J}});C.extend(C.expr[":"],{data:function(K,L,J){return C.data(K,J[3])},tabbable:function(L,M,K){var N=L.nodeName.toLowerCase();function J(O){return !(C(O).is(":hidden")||C(O).parents(":hidden").length)}return(L.tabIndex>=0&&(("a"==N&&L.href)||(/input|select|textarea|button/.test(N)&&"hidden"!=L.type&&!L.disabled))&&J(L))}});function G(M,N,O,L){function K(Q){var P=C[M][N][Q]||[];return(typeof P=="string"?P.split(/,?\s+/):P)}var J=K("getter");if(L.length==1&&typeof L[0]=="string"){J=J.concat(K("getterSetter"))}return(C.inArray(O,J)!=-1)}C.widget=function(K,J){var L=K.split(".")[0];K=K.split(".")[1];C.fn[K]=function(P){var N=(typeof P=="string"),O=Array.prototype.slice.call(arguments,1);if(N&&P.substring(0,1)=="_"){return this}if(N&&G(L,K,P,O)){var M=C.data(this[0],K);return(M?M[P].apply(M,O):undefined)}return this.each(function(){var Q=C.data(this,K);(!Q&&!N&&C.data(this,K,new C[L][K](this,P)));(Q&&N&&C.isFunction(Q[P])&&Q[P].apply(Q,O))})};C[L]=C[L]||{};C[L][K]=function(O,N){var M=this;this.widgetName=K;this.widgetEventPrefix=C[L][K].eventPrefix||K;this.widgetBaseClass=L+"-"+K;this.options=C.extend({},C.widget.defaults,C[L][K].defaults,C.metadata&&C.metadata.get(O)[K],N);this.element=C(O).bind("setData."+K,function(Q,P,R){return M._setData(P,R)}).bind("getData."+K,function(Q,P){return M._getData(P)}).bind("remove",function(){return M.destroy()});this._init()};C[L][K].prototype=C.extend({},C.widget.prototype,J);C[L][K].getterSetter="option"};C.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName)},option:function(L,M){var K=L,J=this;if(typeof L=="string"){if(M===undefined){return this._getData(L)}K={};K[L]=M}C.each(K,function(N,O){J._setData(N,O)})},_getData:function(J){return this.options[J]},_setData:function(J,K){this.options[J]=K;if(J=="disabled"){this.element[K?"addClass":"removeClass"](this.widgetBaseClass+"-disabled")}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(K,L,M){var J=(K==this.widgetEventPrefix?K:this.widgetEventPrefix+K);L=L||C.event.fix({type:J,target:this.element[0]});return this.element.triggerHandler(J,[L,M],this.options[K])}};C.widget.defaults={disabled:false};C.ui.mouse={_mouseInit:function(){var J=this;this.element.bind("mousedown."+this.widgetName,function(K){return J._mouseDown(K)}).bind("click."+this.widgetName,function(K){if(J._preventClickEvent){J._preventClickEvent=false;return false}});if(C.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(C.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(L){(this._mouseStarted&&this._mouseUp(L));this._mouseDownEvent=L;var K=this,M=(L.which==1),J=(typeof this.options.cancel=="string"?C(L.target).parents().add(L.target).filter(this.options.cancel).length:false);if(!M||J||!this._mouseCapture(L)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){K.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(L)&&this._mouseDelayMet(L)){this._mouseStarted=(this._mouseStart(L)!==false);if(!this._mouseStarted){L.preventDefault();return true}}this._mouseMoveDelegate=function(N){return K._mouseMove(N)};this._mouseUpDelegate=function(N){return K._mouseUp(N)};C(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);if(!C.browser.safari){L.preventDefault()}return true},_mouseMove:function(J){if(C.browser.msie&&!J.button){return this._mouseUp(J)}if(this._mouseStarted){this._mouseDrag(J);return J.preventDefault()}if(this._mouseDistanceMet(J)&&this._mouseDelayMet(J)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,J)!==false);(this._mouseStarted?this._mouseDrag(J):this._mouseUp(J))}return !this._mouseStarted},_mouseUp:function(J){C(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=true;this._mouseStop(J)}return false},_mouseDistanceMet:function(J){return(Math.max(Math.abs(this._mouseDownEvent.pageX-J.pageX),Math.abs(this._mouseDownEvent.pageY-J.pageY))>=this.options.distance)},_mouseDelayMet:function(J){return this.mouseDelayMet},_mouseStart:function(J){},_mouseDrag:function(J){},_mouseStop:function(J){},_mouseCapture:function(J){return true}};C.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);/* + * jQuery UI Draggable 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ (function(A){A.widget("ui.draggable",A.extend({},A.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.cssNamespace&&this.element.addClass(this.options.cssNamespace+"-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return }this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(B){var C=this.options;if(this.helper||C.disabled||A(B.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(B);if(!this.handle){return false}return true},_mouseStart:function(B){var C=this.options;this.helper=this._createHelper(B);this._cacheHelperProportions();if(A.ui.ddmanager){A.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};A.extend(this.offset,{click:{left:B.pageX-this.offset.left,top:B.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});if(C.cursorAt){this._adjustOffsetFromHelper(C.cursorAt)}this.originalPosition=this._generatePosition(B);if(C.containment){this._setContainment()}this._propagate("start",B);this._cacheHelperProportions();if(A.ui.ddmanager&&!C.dropBehaviour){A.ui.ddmanager.prepareOffsets(this,B)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(B,true);return true},_mouseDrag:function(B,C){this.position=this._generatePosition(B);this.positionAbs=this._convertPositionTo("absolute");if(!C){this.position=this._propagate("drag",B)||this.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(A.ui.ddmanager){A.ui.ddmanager.drag(this,B)}return false},_mouseStop:function(C){var D=false;if(A.ui.ddmanager&&!this.options.dropBehaviour){var D=A.ui.ddmanager.drop(this,C)}if((this.options.revert=="invalid"&&!D)||(this.options.revert=="valid"&&D)||this.options.revert===true||(A.isFunction(this.options.revert)&&this.options.revert.call(this.element,D))){var B=this;A(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){B._propagate("stop",C);B._clear()})}else{this._propagate("stop",C);this._clear()}return false},_getHandle:function(B){var C=!this.options.handle||!A(this.options.handle,this.element).length?true:false;A(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==B.target){C=true}});return C},_createHelper:function(C){var D=this.options;var B=A.isFunction(D.helper)?A(D.helper.apply(this.element[0],[C])):(D.helper=="clone"?this.element.clone():this.element);if(!B.parents("body").length){B.appendTo((D.appendTo=="parent"?this.element[0].parentNode:D.appendTo))}if(B[0]!=this.element[0]&&!(/(fixed|absolute)/).test(B.css("position"))){B.css("position","absolute")}return B},_adjustOffsetFromHelper:function(B){if(B.left!=undefined){this.offset.click.left=B.left+this.margins.left}if(B.right!=undefined){this.offset.click.left=this.helperProportions.width-B.right+this.margins.left}if(B.top!=undefined){this.offset.click.top=B.top+this.margins.top}if(B.bottom!=undefined){this.offset.click.top=this.helperProportions.height-B.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var B=this.offsetParent.offset();if((this.offsetParent[0]==document.body&&A.browser.mozilla)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&A.browser.msie)){B={top:0,left:0}}return{top:B.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:B.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var B=this.element.position();return{top:B.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:B.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var E=this.options;if(E.containment=="parent"){E.containment=this.helper[0].parentNode}if(E.containment=="document"||E.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,A(E.containment=="document"?document:window).width()-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left-(parseInt(this.element.css("marginRight"),10)||0),(A(E.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top-(parseInt(this.element.css("marginBottom"),10)||0)]}if(!(/^(document|window|parent)$/).test(E.containment)){var C=A(E.containment)[0];var D=A(E.containment).offset();var B=(A(C).css("overflow")!="hidden");this.containment=[D.left+(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.margins.left,D.top+(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.margins.top,D.left+(B?Math.max(C.scrollWidth,C.offsetWidth):C.offsetWidth)-(parseInt(A(C).css("borderLeftWidth"),10)||0)-this.offset.relative.left-this.offset.parent.left-this.helperProportions.width-this.margins.left,D.top+(B?Math.max(C.scrollHeight,C.offsetHeight):C.offsetHeight)-(parseInt(A(C).css("borderTopWidth"),10)||0)-this.offset.relative.top-this.offset.parent.top-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(D,F){if(!F){F=this.position}var C=D=="absolute"?1:-1;var B=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],E=(/(html|body)/i).test(B[0].tagName);return{top:(F.top+this.offset.relative.top*C+this.offset.parent.top*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(E?0:B.scrollTop()))*C+this.margins.top*C),left:(F.left+this.offset.relative.left*C+this.offset.parent.left*C+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():(E?0:B.scrollLeft()))*C+this.margins.left*C)}},_generatePosition:function(D){var G=this.options,C=this[(this.cssPosition=="absolute"?"offset":"scroll")+"Parent"],H=(/(html|body)/i).test(C[0].tagName);var B={top:(D.pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(H?0:C.scrollTop()))),left:(D.pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():H?0:C.scrollLeft()))};if(!this.originalPosition){return B}if(this.containment){if(B.leftthis.containment[2]){B.left=this.containment[2]}if(B.top>this.containment[3]){B.top=this.containment[3]}}if(G.grid){var F=this.originalPosition.top+Math.round((B.top-this.originalPosition.top)/G.grid[1])*G.grid[1];B.top=this.containment?(!(Fthis.containment[3])?F:(!(Fthis.containment[2])?E:(!(E
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(A(this).offset()).appendTo("body")})},stop:function(B,C){A("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});A.ui.plugin.add("draggable","opacity",{start:function(C,D){var B=A(D.helper);if(B.css("opacity")){D.options._opacity=B.css("opacity")}B.css("opacity",D.options.opacity)},stop:function(B,C){if(C.options._opacity){A(C.helper).css("opacity",C.options._opacity)}}});A.ui.plugin.add("draggable","scroll",{start:function(C,D){var E=D.options;var B=A(this).data("draggable");if(B.scrollParent[0]!=document&&B.scrollParent[0].tagName!="HTML"){B.overflowOffset=B.scrollParent.offset()}},drag:function(D,E){var F=E.options,B=false;var C=A(this).data("draggable");if(C.scrollParent[0]!=document&&C.scrollParent[0].tagName!="HTML"){if((C.overflowOffset.top+C.scrollParent[0].offsetHeight)-D.pageY=0;N--){var L=E.snapElements[N].left,J=L+E.snapElements[N].width,I=E.snapElements[N].top,S=I+E.snapElements[N].height;if(!((L-Q=N&&L<=J)||(K>=N&&K<=J)||(LJ))&&((D>=F&&D<=B)||(C>=F&&C<=B)||(DB));break;default:return false;break}};A.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(E,G){var B=A.ui.ddmanager.droppables[E.options.scope];var F=G?G.type:null;var H=(E.currentItem||E.element).find(":data(droppable)").andSelf();droppablesLoop:for(var D=0;D').insertBefore(H.headers);E('').appendTo(H.headers);H.headers.addClass("ui-accordion-header")}var J;if(H.fillSpace){J=this.element.parent().height();H.headers.each(function(){J-=E(this).outerHeight()});var I=0;H.headers.next().each(function(){I=Math.max(I,E(this).innerHeight()-E(this).height())}).height(J-I)}else{if(H.autoHeight){J=0;H.headers.next().each(function(){J=Math.max(J,E(this).outerHeight())}).height(J)}}this.element.attr("role","tablist");var G=this;H.headers.attr("role","tab").bind("keydown",function(L){return G._keydown(L)}).next().attr("role","tabpanel");H.headers.not(H.active||"").attr("aria-expanded","false").attr("tabIndex","-1").next().hide();if(!H.active.length){H.headers.eq(0).attr("tabIndex","0")}else{H.active.attr("aria-expanded","true").attr("tabIndex","0").parent().andSelf().addClass(H.selectedClass)}if(!E.browser.safari){H.headers.find("a").attr("tabIndex","-1")}if(H.event){this.element.bind((H.event)+".accordion",F)}},destroy:function(){this.options.headers.parent().andSelf().removeClass(this.options.selectedClass);this.options.headers.prev(".ui-accordion-left").remove();this.options.headers.children(".ui-accordion-right").remove();this.options.headers.next().css("display","");if(this.options.fillSpace||this.options.autoHeight){this.options.headers.next().css("height","")}E.removeData(this.element[0],"accordion");this.element.removeClass("ui-accordion").unbind(".accordion")},_keydown:function(J){if(this.options.disabled||J.altKey||J.ctrlKey){return }var K=E.ui.keyCode;var I=this.options.headers.length;var G=this.options.headers.index(J.target);var H=false;switch(J.keyCode){case K.RIGHT:case K.DOWN:H=this.options.headers[(G+1)%I];break;case K.LEFT:case K.UP:H=this.options.headers[(G-1+I)%I];break;case K.SPACE:case K.ENTER:return F.call(this.element[0],{target:J.target})}if(H){E(J.target).attr("tabIndex","-1");E(H).attr("tabIndex","0");H.focus();return false}return true},activate:function(G){F.call(this.element[0],{target:C(this.options.headers,G)[0]})}});function B(H,G){return function(){return H.apply(G,arguments)}}function D(I){if(!E.data(this,"accordion")){return }var G=E.data(this,"accordion");var H=G.options;H.running=I?0:--H.running;if(H.running){return }if(H.clearStyle){H.toShow.add(H.toHide).css({height:"",overflow:""})}G._trigger("change",null,H.data)}function A(G,N,K,L,O){var Q=E.data(this,"accordion").options;Q.toShow=G;Q.toHide=N;Q.data=K;var H=B(D,this);E.data(this,"accordion")._trigger("changestart",null,Q.data);Q.running=N.size()===0?G.size():N.size();if(Q.animated){var J={};if(!Q.alwaysOpen&&L){J={toShow:E([]),toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}else{J={toShow:G,toHide:N,complete:H,down:O,autoHeight:Q.autoHeight}}if(!Q.proxied){Q.proxied=Q.animated}if(!Q.proxiedDuration){Q.proxiedDuration=Q.duration}Q.animated=E.isFunction(Q.proxied)?Q.proxied(J):Q.proxied;Q.duration=E.isFunction(Q.proxiedDuration)?Q.proxiedDuration(J):Q.proxiedDuration;var P=E.ui.accordion.animations,I=Q.duration,M=Q.animated;if(!P[M]){P[M]=function(R){this.slide(R,{easing:M,duration:I||700})}}P[M](J)}else{if(!Q.alwaysOpen&&L){G.toggle()}else{N.hide();G.show()}H(true)}N.prev().attr("aria-expanded","false").attr("tabIndex","-1");G.prev().attr("aria-expanded","true").attr("tabIndex","0").focus()}function F(L){var J=E.data(this,"accordion").options;if(J.disabled){return false}if(!L.target&&!J.alwaysOpen){J.active.parent().andSelf().toggleClass(J.selectedClass);var I=J.active.next(),M={options:J,newHeader:E([]),oldHeader:J.active,newContent:E([]),oldContent:I},G=(J.active=E([]));A.call(this,G,I,M);return false}var K=E(L.target);K=E(K.parents(J.header)[0]||K);var H=K[0]==J.active[0];if(J.running||(J.alwaysOpen&&H)){return false}if(!K.is(J.header)){return }J.active.parent().andSelf().toggleClass(J.selectedClass);if(!H){K.parent().andSelf().addClass(J.selectedClass)}var G=K.next(),I=J.active.next(),M={options:J,newHeader:H&&!J.alwaysOpen?E([]):K,oldHeader:J.active,newContent:H&&!J.alwaysOpen?E([]):G,oldContent:I},N=J.headers.index(J.active[0])>J.headers.index(K[0]);J.active=H?E([]):K;A.call(this,G,I,M,H,N);return false}function C(H,G){return G?typeof G=="number"?H.filter(":eq("+G+")"):H.not(H.not(G)):G===false?E([]):H.filter(":eq(0)")}E.extend(E.ui.accordion,{version:"1.6",defaults:{autoHeight:true,alwaysOpen:true,animated:"slide",event:"click",header:"a",navigationFilter:function(){return this.href.toLowerCase()==location.href.toLowerCase()},running:0,selectedClass:"selected"},animations:{slide:function(G,J){G=E.extend({easing:"swing",duration:300},G,J);if(!G.toHide.size()){G.toShow.animate({height:"show"},G);return }var I=G.toHide.height(),L=G.toShow.height(),N=L/I,K=G.toShow.outerHeight()-G.toShow.height(),H=G.toShow.css("marginBottom"),M=G.toShow.css("overflow");tmargin=G.toShow.css("marginTop");G.toShow.css({height:0,overflow:"hidden",marginTop:0,marginBottom:-K}).show();G.toHide.filter(":hidden").each(G.complete).end().filter(":visible").animate({height:"hide"},{step:function(O){var P=(I-O)*N;if(E.browser.msie||E.browser.opera){P=Math.ceil(P)}G.toShow.height(P)},duration:G.duration,easing:G.easing,complete:function(){if(!G.autoHeight){G.toShow.css("height","auto")}G.toShow.css({marginTop:tmargin,marginBottom:H,overflow:M});G.complete()}})},bounceslide:function(G){this.slide(G,{easing:G.down?"easeOutBounce":"swing",duration:G.down?1000:200})},easeslide:function(G){this.slide(G,{easing:"easeinout",duration:700})}}})})(jQuery);/* + * jQuery UI Dialog 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * ui.core.js + * ui.draggable.js + * ui.resizable.js + */ (function(B){var A={dragStart:"start.draggable",drag:"drag.draggable",dragStop:"stop.draggable",maxHeight:"maxHeight.resizable",minHeight:"minHeight.resizable",maxWidth:"maxWidth.resizable",minWidth:"minWidth.resizable",resizeStart:"start.resizable",resize:"drag.resizable",resizeStop:"stop.resizable"};B.widget("ui.dialog",{_init:function(){this.originalTitle=this.element.attr("title");this.options.title=this.options.title||this.originalTitle;var M=this,N=this.options,F=this.element.removeAttr("title").addClass("ui-dialog-content").wrap("
").wrap("
"),I=(this.uiDialogContainer=F.parent()).addClass("ui-dialog-container").css({position:"relative",width:"100%",height:"100%"}),E=(this.uiDialogTitlebar=B("
")).addClass("ui-dialog-titlebar").mousedown(function(){M.moveToTop()}).prependTo(I),J=B('').addClass("ui-dialog-titlebar-close").attr("role","button").appendTo(E),G=(this.uiDialogTitlebarCloseText=B("")).text(N.closeText).appendTo(J),L=N.title||" ",D=B.ui.dialog.getTitleId(this.element),C=B("").addClass("ui-dialog-title").attr("id",D).html(L).prependTo(E),K=(this.uiDialog=I.parent()).appendTo(document.body).hide().addClass("ui-dialog").addClass(N.dialogClass).css({position:"absolute",width:N.width,height:N.height,overflow:"hidden",zIndex:N.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(O){(N.closeOnEscape&&O.keyCode&&O.keyCode==B.ui.keyCode.ESCAPE&&M.close())}).attr({role:"dialog","aria-labelledby":D}).mouseup(function(){M.moveToTop()}),H=(this.uiDialogButtonPane=B("
")).addClass("ui-dialog-buttonpane").css({position:"absolute",bottom:0}).appendTo(K),J=B(".ui-dialog-titlebar-close",E).hover(function(){B(this).addClass("ui-dialog-titlebar-close-hover")},function(){B(this).removeClass("ui-dialog-titlebar-close-hover")}).mousedown(function(O){O.stopPropagation()}).click(function(){M.close();return false});E.find("*").add(E).disableSelection();(N.draggable&&B.fn.draggable&&this._makeDraggable());(N.resizable&&B.fn.resizable&&this._makeResizable());this._createButtons(N.buttons);this._isOpen=false;(N.bgiframe&&B.fn.bgiframe&&K.bgiframe());(N.autoOpen&&this.open())},destroy:function(){(this.overlay&&this.overlay.destroy());this.uiDialog.hide();this.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content").hide().appendTo("body");this.uiDialog.remove();(this.originalTitle&&this.element.attr("title",this.originalTitle))},close:function(){if(false===this._trigger("beforeclose",null,{options:this.options})){return }(this.overlay&&this.overlay.destroy());this.uiDialog.hide(this.options.hide).unbind("keypress.ui-dialog");this._trigger("close",null,{options:this.options});B.ui.dialog.overlay.resize();this._isOpen=false},isOpen:function(){return this._isOpen},moveToTop:function(F){if((this.options.modal&&!F)||(!this.options.stack&&!this.options.modal)){return this._trigger("focus",null,{options:this.options})}var E=this.options.zIndex,D=this.options;B(".ui-dialog:visible").each(function(){E=Math.max(E,parseInt(B(this).css("z-index"),10)||D.zIndex)});(this.overlay&&this.overlay.$el.css("z-index",++E));var C={scrollTop:this.element.attr("scrollTop"),scrollLeft:this.element.attr("scrollLeft")};this.uiDialog.css("z-index",++E);this.element.attr(C);this._trigger("focus",null,{options:this.options})},open:function(){if(this._isOpen){return }this.overlay=this.options.modal?new B.ui.dialog.overlay(this):null;(this.uiDialog.next().length&&this.uiDialog.appendTo("body"));this._position(this.options.position);this.uiDialog.show(this.options.show);(this.options.autoResize&&this._size());this.moveToTop(true);(this.options.modal&&this.uiDialog.bind("keypress.ui-dialog",function(E){if(E.keyCode!=B.ui.keyCode.TAB){return }var D=B(":tabbable",this),F=D.filter(":first")[0],C=D.filter(":last")[0];if(E.target==C&&!E.shiftKey){setTimeout(function(){F.focus()},1)}else{if(E.target==F&&E.shiftKey){setTimeout(function(){C.focus()},1)}}}));this.uiDialog.find(":tabbable:first").focus();this._trigger("open",null,{options:this.options});this._isOpen=true},_createButtons:function(F){var E=this,C=false,D=this.uiDialogButtonPane;D.empty().hide();B.each(F,function(){return !(C=true)});if(C){D.show();B.each(F,function(G,H){B('').text(G).click(function(){H.apply(E.element[0],arguments)}).appendTo(D)})}},_makeDraggable:function(){var C=this,D=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content",helper:D.dragHelper,handle:".ui-dialog-titlebar",start:function(){C.moveToTop();(D.dragStart&&D.dragStart.apply(C.element[0],arguments))},drag:function(){(D.drag&&D.drag.apply(C.element[0],arguments))},stop:function(){(D.dragStop&&D.dragStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_makeResizable:function(F){F=(F===undefined?this.options.resizable:F);var C=this,E=this.options,D=typeof F=="string"?F:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",helper:E.resizeHelper,maxWidth:E.maxWidth,maxHeight:E.maxHeight,minWidth:E.minWidth,minHeight:E.minHeight,start:function(){(E.resizeStart&&E.resizeStart.apply(C.element[0],arguments))},resize:function(){(E.autoResize&&C._size.apply(C));(E.resize&&E.resize.apply(C.element[0],arguments))},handles:D,stop:function(){(E.autoResize&&C._size.apply(C));(E.resizeStop&&E.resizeStop.apply(C.element[0],arguments));B.ui.dialog.overlay.resize()}})},_position:function(H){var D=B(window),E=B(document),F=E.scrollTop(),C=E.scrollLeft(),G=F;if(B.inArray(H,["center","top","right","bottom","left"])>=0){H=[H=="right"||H=="left"?H:"center",H=="top"||H=="bottom"?H:"middle"]}if(H.constructor!=Array){H=["center","middle"]}if(H[0].constructor==Number){C+=H[0]}else{switch(H[0]){case"left":C+=0;break;case"right":C+=D.width()-this.uiDialog.outerWidth();break;default:case"center":C+=(D.width()-this.uiDialog.outerWidth())/2}}if(H[1].constructor==Number){F+=H[1]}else{switch(H[1]){case"top":F+=0;break;case"bottom":F+=(B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight();break;default:case"middle":F+=((B.browser.opera?window.innerHeight:D.height())-this.uiDialog.outerHeight())/2}}F=Math.max(F,G);this.uiDialog.css({top:F,left:C})},_setData:function(D,E){(A[D]&&this.uiDialog.data(A[D],E));switch(D){case"buttons":this._createButtons(E);break;case"closeText":this.uiDialogTitlebarCloseText.text(E);break;case"draggable":(E?this._makeDraggable():this.uiDialog.draggable("destroy"));break;case"height":this.uiDialog.height(E);break;case"position":this._position(E);break;case"resizable":var C=this.uiDialog,F=this.uiDialog.is(":data(resizable)");(F&&!E&&C.resizable("destroy"));(F&&typeof E=="string"&&C.resizable("option","handles",E));(F||this._makeResizable(E));break;case"title":B(".ui-dialog-title",this.uiDialogTitlebar).html(E||" ");break;case"width":this.uiDialog.width(E);break}B.widget.prototype._setData.apply(this,arguments)},_size:function(){var D=this.uiDialogContainer,G=this.uiDialogTitlebar,E=this.element,F=(parseInt(E.css("margin-top"),10)||0)+(parseInt(E.css("margin-bottom"),10)||0),C=(parseInt(E.css("margin-left"),10)||0)+(parseInt(E.css("margin-right"),10)||0);E.height(D.height()-G.outerHeight()-F);E.width(D.width()-C)}});B.extend(B.ui.dialog,{version:"1.6",defaults:{autoOpen:true,autoResize:true,bgiframe:false,buttons:{},closeOnEscape:true,closeText:"close",draggable:true,height:200,minHeight:100,minWidth:150,modal:false,overlay:{},position:"center",resizable:true,stack:true,width:300,zIndex:1000},getter:"isOpen",uuid:0,getTitleId:function(C){return"ui-dialog-title-"+(C.attr("id")||++this.uuid)},overlay:function(C){this.$el=B.ui.dialog.overlay.create(C)}});B.extend(B.ui.dialog.overlay,{instances:[],events:B.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(C){return C+".dialog-overlay"}).join(" "),create:function(D){if(this.instances.length===0){setTimeout(function(){B("a, :input").bind(B.ui.dialog.overlay.events,function(){var F=false;var H=B(this).parents(".ui-dialog");if(H.length){var E=B(".ui-dialog-overlay");if(E.length){var G=parseInt(E.css("z-index"),10);E.each(function(){G=Math.max(G,parseInt(B(this).css("z-index"),10))});F=parseInt(H.css("z-index"),10)>G}else{F=true}}return F})},1);B(document).bind("keydown.dialog-overlay",function(E){(D.options.closeOnEscape&&E.keyCode&&E.keyCode==B.ui.keyCode.ESCAPE&&D.close())});B(window).bind("resize.dialog-overlay",B.ui.dialog.overlay.resize)}var C=B("
").appendTo(document.body).addClass("ui-dialog-overlay").css(B.extend({borderWidth:0,margin:0,padding:0,position:"absolute",top:0,left:0,width:this.width(),height:this.height()},D.options.overlay));(D.options.bgiframe&&B.fn.bgiframe&&C.bgiframe());this.instances.push(C);return C},destroy:function(C){this.instances.splice(B.inArray(this.instances,C),1);if(this.instances.length===0){B("a, :input").add([document,window]).unbind(".dialog-overlay")}C.remove()},height:function(){if(B.browser.msie&&B.browser.version<7){var D=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);var C=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);if(D").addClass("ui-slider-handle").appendTo(B.element);if(this.id){D.attr("id",this.id)}return D[0]})}var C=function(D){this.element=A(D);this.element.data("mouse",this);this.options=B.options;this.element.bind("mousedown",function(){if(B.currentHandle){this.blur(B.currentHandle)}B._focus(this,true)});this._mouseInit()};A.extend(C.prototype,A.ui.mouse,{_mouseCapture:function(){return true},_mouseStart:function(D){return B._start.call(B,D,this.element[0])},_mouseDrag:function(D){return B._drag.call(B,D,this.element[0])},_mouseStop:function(D){return B._stop.call(B,D,this.element[0])},trigger:function(D){this._mouseDown(D)}});A(this.handle).each(function(){new C(this)}).wrap('
').parent().bind("click",function(){return false}).bind("focus",function(D){B._focus(this.firstChild)}).bind("blur",function(D){B._blur(this.firstChild)}).bind("keydown",function(D){if(!B.options.noKeyboard){return B._keydown(D.keyCode,this.firstChild)}});this.element.bind("mousedown.slider",function(D){if(A(D.target).is(".ui-slider-handle")){return }B._click.apply(B,[D]);B.currentHandle.data("mouse").trigger(D);B.firstValue=B.firstValue+1});A.each(this.options.handles||[],function(D,E){B.moveTo(E.start,D,true)});if(!isNaN(this.options.startValue)){this.moveTo(this.options.startValue,0,true)}this.previousHandle=A(this.handle[0]);if(this.handle.length==2&&this.options.range){this._createRange()}},destroy:function(){this.element.removeClass("ui-slider ui-slider-disabled").removeData("slider").unbind(".slider");if(this.handle&&this.handle.length){this.handle.unwrap("a");this.handle.each(function(){var B=A(this).data("mouse");B&&B._mouseDestroy()})}this.generated&&this.generated.remove()},_start:function(B,C){var D=this.options;if(D.disabled){return false}this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(!this.currentHandle){this._focus(this.previousHandle,true)}this.offset=this.element.offset();this.handleOffset=this.currentHandle.offset();this.clickOffset={top:B.pageY-this.handleOffset.top,left:B.pageX-this.handleOffset.left};this.firstValue=this.value();this._propagate("start",B);this._drag(B,C);return true},_drag:function(C,E){var F=this.options;var B={top:C.pageY-this.offset.top-this.clickOffset.top,left:C.pageX-this.offset.left-this.clickOffset.left};if(!this.currentHandle){this._focus(this.previousHandle,true)}B.left=this._translateLimits(B.left,"x");B.top=this._translateLimits(B.top,"y");if(F.stepping.x){var D=this._convertValue(B.left,"x");D=this._round(D/F.stepping.x)*F.stepping.x;B.left=this._translateValue(D,"x")}if(F.stepping.y){var D=this._convertValue(B.top,"y");D=this._round(D/F.stepping.y)*F.stepping.y;B.top=this._translateValue(D,"y")}B.left=this._translateRange(B.left,"x");B.top=this._translateRange(B.top,"y");if(F.axis!="vertical"){this.currentHandle.css({left:B.left})}if(F.axis!="horizontal"){this.currentHandle.css({top:B.top})}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B.left,"x"))||0,y:this._round(this._convertValue(B.top,"y"))||0};if(this.rangeElement){this._updateRange()}this._propagate("slide",C);return false},_stop:function(B){this._propagate("stop",B);if(this.firstValue!=this.value()){this._propagate("change",B)}this._focus(this.currentHandle,true);return false},_round:function(B){return this.options.round?parseInt(B,10):parseFloat(B)},_setData:function(B,C){A.widget.prototype._setData.apply(this,arguments);if(/min|max|steps/.test(B)){this._initBoundaries()}if(B=="range"){C?this.handle.length==2&&this._createRange():this._removeRange()}},_initBoundaries:function(){var B=this.element[0],C=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};A.extend(C,{axis:C.axis||(B.offsetWidth").addClass("ui-slider-range").css({position:"absolute"}).appendTo(this.element);this._updateRange()},_removeRange:function(){this.rangeElement.remove();this.rangeElement=null},_updateRange:function(){var C=this.options.axis=="vertical"?"top":"left";var B=this.options.axis=="vertical"?"height":"width";this.rangeElement.css(C,(this._round(A(this.handle[0]).css(C))||0)+this._handleSize(0,this.options.axis=="vertical"?"y":"x")/2);this.rangeElement.css(B,(this._round(A(this.handle[1]).css(C))||0)-(this._round(A(this.handle[0]).css(C))||0))},_getRange:function(){return this.rangeElement?this._convertValue(this._round(this.rangeElement.css(this.options.axis=="vertical"?"height":"width")),this.options.axis=="vertical"?"y":"x"):null},_handleIndex:function(){return this.handle.index(this.currentHandle[0])},value:function(D,B){if(this.handle.length==1){this.currentHandle=this.handle}if(!B){B=this.options.axis=="vertical"?"y":"x"}var C=A(D!=undefined&&D!==null?this.handle[D]||D:this.currentHandle);if(C.data("mouse").sliderValue){return this._round(C.data("mouse").sliderValue[B])}else{return this._round(((this._round(C.css(B=="x"?"left":"top"))/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(D,B)))*this.options.realMax[B])+this.options.min[B])}},_convertValue:function(C,B){return this.options.min[B]+(C/(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)))*this.options.realMax[B]},_translateValue:function(C,B){return((C-this.options.min[B])/this.options.realMax[B])*(this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B))},_translateRange:function(D,B){if(this.rangeElement){if(this.currentHandle[0]==this.handle[0]&&D>=this._translateValue(this.value(1),B)){D=this._translateValue(this.value(1,B)-this._oneStep(B),B)}if(this.currentHandle[0]==this.handle[1]&&D<=this._translateValue(this.value(0),B)){D=this._translateValue(this.value(0,B)+this._oneStep(B),B)}}if(this.options.handles){var C=this.options.handles[this._handleIndex()];if(Dthis._translateValue(C.max,B)){D=this._translateValue(C.max,B)}}}return D},_translateLimits:function(C,B){if(C>=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)){C=this.actualSize[B=="x"?"width":"height"]-this._handleSize(null,B)}if(C<=0){C=0}return C},_handleSize:function(C,B){return A(C!=undefined&&C!==null?this.handle[C]:this.currentHandle)[0]["offset"+(B=="x"?"Width":"Height")]},_oneStep:function(B){return this.options.stepping[B]||1},_pageStep:function(B){return 10},moveTo:function(F,E,G){var H=this.options;this.actualSize={width:this.element.outerWidth(),height:this.element.outerHeight()};if(E==undefined&&!this.currentHandle&&this.handle.length!=1){return false}if(E==undefined&&!this.currentHandle){E=0}if(E!=undefined){this.currentHandle=this.previousHandle=A(this.handle[E]||E)}if(F.x!==undefined&&F.y!==undefined){var B=F.x,I=F.y}else{var B=F,I=F}if(B!==undefined&&B.constructor!=Number){var D=/^\-\=/.test(B),C=/^\+\=/.test(B);if(D||C){B=this.value(null,"x")+this._round(B.replace(D?"=":"+=",""))}else{B=isNaN(this._round(B))?undefined:this._round(B)}}if(I!==undefined&&I.constructor!=Number){var D=/^\-\=/.test(I),C=/^\+\=/.test(I);if(D||C){I=this.value(null,"y")+this._round(I.replace(D?"=":"+=",""))}else{I=isNaN(this._round(I))?undefined:this._round(I)}}if(H.axis!="vertical"&&B!==undefined){if(H.stepping.x){B=this._round(B/H.stepping.x)*H.stepping.x}B=this._translateValue(B,"x");B=this._translateLimits(B,"x");B=this._translateRange(B,"x");H.animate?this.currentHandle.stop().animate({left:B},(Math.abs(parseInt(this.currentHandle.css("left"),10)-B))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({left:B})}if(H.axis!="horizontal"&&I!==undefined){if(H.stepping.y){I=this._round(I/H.stepping.y)*H.stepping.y}I=this._translateValue(I,"y");I=this._translateLimits(I,"y");I=this._translateRange(I,"y");H.animate?this.currentHandle.stop().animate({top:I},(Math.abs(parseInt(this.currentHandle.css("top"),10)-I))*(!isNaN(parseInt(H.animate,10))?H.animate:5)):this.currentHandle.css({top:I})}if(this.rangeElement){this._updateRange()}this.currentHandle.data("mouse").sliderValue={x:this._round(this._convertValue(B,"x"))||0,y:this._round(this._convertValue(I,"y"))||0};if(!G){this._propagate("start",null);this._propagate("slide",null);this._propagate("stop",null);this._propagate("change",null)}},_propagate:function(C,B){A.ui.plugin.call(this,C,[B,this.ui()]);this.element.triggerHandler(C=="slide"?C:"slide"+C,[B,this.ui()],this.options[C])},plugins:{},ui:function(B){return{options:this.options,handle:this.currentHandle,value:this.options.axis!="both"||!this.options.axis?this._round(this.value(null,this.options.axis=="vertical"?"y":"x")):{x:this._round(this.value(null,"x")),y:this._round(this.value(null,"y"))},range:this._getRange()}}});A.extend(A.ui.slider,{getter:"value",version:"1.6",defaults:{animate:false,distance:1,handle:".ui-slider-handle",round:true}})})(jQuery);/* + * jQuery UI Tabs 1.6 + * + * Copyright (c) 2008 AUTHORS.txt (http://ui.jquery.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * ui.core.js + */ (function(A){A.widget("ui.tabs",{_init:function(){this._tabify(true)},destroy:function(){var B=this.options;this.element.unbind(".tabs").removeClass(B.navClass).removeData("tabs");this.$tabs.each(function(){var C=A.data(this,"href.tabs");if(C){this.href=C}var D=A(this).unbind(".tabs");A.each(["href","load","cache"],function(E,F){D.removeData(F+".tabs")})});this.$lis.add(this.$panels).each(function(){if(A.data(this,"destroy.tabs")){A(this).remove()}else{A(this).removeClass([B.selectedClass,B.deselectableClass,B.disabledClass,B.panelClass,B.hideClass].join(" "))}});if(B.cookie){this._cookie(null,B.cookie)}},_setData:function(B,C){if((/^selected/).test(B)){this.select(C)}else{this.options[B]=C;this._tabify()}},length:function(){return this.$tabs.length},_tabId:function(B){return B.title&&B.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+A.data(B)},_sanitizeSelector:function(B){return B.replace(/:/g,"\\:")},_cookie:function(){var B=this.cookie||(this.cookie="ui-tabs-"+A.data(this.element[0]));return A.cookie.apply(null,[B].concat(A.makeArray(arguments)))},_tabify:function(N){this.$lis=A("li:has(a[href])",this.element);this.$tabs=this.$lis.map(function(){return A("a",this)[0]});this.$panels=A([]);var O=this,C=this.options;this.$tabs.each(function(Q,P){if(P.hash&&P.hash.replace("#","")){O.$panels=O.$panels.add(O._sanitizeSelector(P.hash))}else{if(A(P).attr("href")!="#"){A.data(P,"href.tabs",P.href);A.data(P,"load.tabs",P.href);var S=O._tabId(P);P.href="#"+S;var R=A("#"+S);if(!R.length){R=A(C.panelTemplate).attr("id",S).addClass(C.panelClass).insertAfter(O.$panels[Q-1]||O.element);R.data("destroy.tabs",true)}O.$panels=O.$panels.add(R)}else{C.disabled.push(Q+1)}}});if(N){this.element.addClass(C.navClass);this.$panels.addClass(C.panelClass);if(C.selected===undefined){if(location.hash){this.$tabs.each(function(Q,P){if(P.hash==location.hash){C.selected=Q;return false}})}else{if(C.cookie){var I=parseInt(O._cookie(),10);if(I&&O.$tabs[I]){C.selected=I}}else{if(O.$lis.filter("."+C.selectedClass).length){C.selected=O.$lis.index(O.$lis.filter("."+C.selectedClass)[0])}}}}C.selected=C.selected===null||C.selected!==undefined?C.selected:0;C.disabled=A.unique(C.disabled.concat(A.map(this.$lis.filter("."+C.disabledClass),function(Q,P){return O.$lis.index(Q)}))).sort();if(A.inArray(C.selected,C.disabled)!=-1){C.disabled.splice(A.inArray(C.selected,C.disabled),1)}this.$panels.addClass(C.hideClass);this.$lis.removeClass(C.selectedClass);if(C.selected!==null){this.$panels.eq(C.selected).removeClass(C.hideClass);var E=[C.selectedClass];if(C.deselectable){E.push(C.deselectableClass)}this.$lis.eq(C.selected).addClass(E.join(" "));var J=function(){O._trigger("show",null,O.ui(O.$tabs[C.selected],O.$panels[C.selected]))};if(A.data(this.$tabs[C.selected],"load.tabs")){this.load(C.selected,J)}else{J()}}A(window).bind("unload",function(){O.$tabs.unbind(".tabs");O.$lis=O.$tabs=O.$panels=null})}else{C.selected=this.$lis.index(this.$lis.filter("."+C.selectedClass)[0])}if(C.cookie){this._cookie(C.selected,C.cookie)}for(var G=0,M;M=this.$lis[G];G++){A(M)[A.inArray(G,C.disabled)!=-1&&!A(M).hasClass(C.selectedClass)?"addClass":"removeClass"](C.disabledClass)}if(C.cache===false){this.$tabs.removeData("cache.tabs")}var B,H;if(C.fx){if(C.fx.constructor==Array){B=C.fx[0];H=C.fx[1]}else{B=H=C.fx}}function D(P,Q){P.css({display:""});if(A.browser.msie&&Q.opacity){P[0].style.removeAttribute("filter")}}var K=H?function(P,Q){Q.animate(H,H.duration||"normal",function(){Q.removeClass(C.hideClass);D(Q,H);O._trigger("show",null,O.ui(P,Q[0]))})}:function(P,Q){Q.removeClass(C.hideClass);O._trigger("show",null,O.ui(P,Q[0]))};var L=B?function(Q,P,R){P.animate(B,B.duration||"normal",function(){P.addClass(C.hideClass);D(P,B);if(R){K(Q,R,P)}})}:function(Q,P,R){P.addClass(C.hideClass);if(R){K(Q,R)}};function F(R,T,P,S){var Q=[C.selectedClass];if(C.deselectable){Q.push(C.deselectableClass)}T.addClass(Q.join(" ")).siblings().removeClass(Q.join(" "));L(R,P,S)}this.$tabs.unbind(".tabs").bind(C.event+".tabs",function(){var S=A(this).parents("li:eq(0)"),P=O.$panels.filter(":visible"),R=A(O._sanitizeSelector(this.hash));if((S.hasClass(C.selectedClass)&&!C.deselectable)||S.hasClass(C.disabledClass)||A(this).hasClass(C.loadingClass)||O._trigger("select",null,O.ui(this,R[0]))===false){this.blur();return false}C.selected=O.$tabs.index(this);if(C.deselectable){if(S.hasClass(C.selectedClass)){O.options.selected=null;S.removeClass([C.selectedClass,C.deselectableClass].join(" "));O.$panels.stop();L(this,P);this.blur();return false}else{if(!P.length){O.$panels.stop();var Q=this;O.load(O.$tabs.index(this),function(){S.addClass([C.selectedClass,C.deselectableClass].join(" "));K(Q,R)});this.blur();return false}}}if(C.cookie){O._cookie(C.selected,C.cookie)}O.$panels.stop();if(R.length){var Q=this;O.load(O.$tabs.index(this),P.length?function(){F(Q,S,P,R)}:function(){S.addClass(C.selectedClass);K(Q,R)})}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(A.browser.msie){this.blur()}return false});if(C.event!="click"){this.$tabs.bind("click.tabs",function(){return false})}},add:function(E,D,C){if(C==undefined){C=this.$tabs.length}var G=this.options;var I=A(G.tabTemplate.replace(/#\{href\}/g,E).replace(/#\{label\}/g,D));I.data("destroy.tabs",true);var H=E.indexOf("#")==0?E.replace("#",""):this._tabId(A("a:first-child",I)[0]);var F=A("#"+H);if(!F.length){F=A(G.panelTemplate).attr("id",H).addClass(G.hideClass).data("destroy.tabs",true)}F.addClass(G.panelClass);if(C>=this.$lis.length){I.appendTo(this.element);F.appendTo(this.element[0].parentNode)}else{I.insertBefore(this.$lis[C]);F.insertBefore(this.$panels[C])}G.disabled=A.map(G.disabled,function(K,J){return K>=C?++K:K});this._tabify();if(this.$tabs.length==1){I.addClass(G.selectedClass);F.removeClass(G.hideClass);var B=A.data(this.$tabs[0],"load.tabs");if(B){this.load(C,B)}}this._trigger("add",null,this.ui(this.$tabs[C],this.$panels[C]))},remove:function(B){var D=this.options,E=this.$lis.eq(B).remove(),C=this.$panels.eq(B).remove();if(E.hasClass(D.selectedClass)&&this.$tabs.length>1){this.select(B+(B+1=B?--G:G});this._tabify();this._trigger("remove",null,this.ui(E.find("a")[0],C[0]))},enable:function(B){var C=this.options;if(A.inArray(B,C.disabled)==-1){return }var D=this.$lis.eq(B).removeClass(C.disabledClass);if(A.browser.safari){D.css("display","inline-block");setTimeout(function(){D.css("display","block")},0)}C.disabled=A.grep(C.disabled,function(F,E){return F!=B});this._trigger("enable",null,this.ui(this.$tabs[B],this.$panels[B]))},disable:function(C){var B=this,D=this.options;if(C!=D.selected){this.$lis.eq(C).addClass(D.disabledClass);D.disabled.push(C);D.disabled.sort();this._trigger("disable",null,this.ui(this.$tabs[C],this.$panels[C]))}},select:function(B){if(typeof B=="string"){B=this.$tabs.index(this.$tabs.filter("[href$="+B+"]")[0])}this.$tabs.eq(B).trigger(this.options.event+".tabs")},load:function(G,K){var L=this,D=this.options,E=this.$tabs.eq(G),J=E[0],H=K==undefined||K===false,B=E.data("load.tabs");K=K||function(){};if(!B||!H&&A.data(J,"cache.tabs")){K();return }var M=function(N){var O=A(N),P=O.find("*:last");return P.length&&P.is(":not(img)")&&P||O};var C=function(){L.$tabs.filter("."+D.loadingClass).removeClass(D.loadingClass).each(function(){if(D.spinner){M(this).parent().html(M(this).data("label.tabs"))}});L.xhr=null};if(D.spinner){var I=M(J).html();M(J).wrapInner("").find("em").data("label.tabs",I).html(D.spinner)}var F=A.extend({},D.ajaxOptions,{url:B,success:function(P,N){A(L._sanitizeSelector(J.hash)).html(P);C();if(D.cache){A.data(J,"cache.tabs",true)}L._trigger("load",null,L.ui(L.$tabs[G],L.$panels[G]));try{D.ajaxOptions.success(P,N)}catch(O){}K()}});if(this.xhr){this.xhr.abort();C()}E.addClass(D.loadingClass);L.xhr=A.ajax(F)},url:function(C,B){this.$tabs.eq(C).removeData("cache.tabs").data("load.tabs",B)},ui:function(C,B){return{options:this.options,tab:C,panel:B,index:this.$tabs.index(C)}}});A.extend(A.ui.tabs,{version:"1.6",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,deselectable:false,deselectableClass:"ui-tabs-deselectable",disabled:[],disabledClass:"ui-tabs-disabled",event:"click",fx:null,hideClass:"ui-tabs-hide",idPrefix:"ui-tabs-",loadingClass:"ui-tabs-loading",navClass:"ui-tabs-nav",panelClass:"ui-tabs-panel",panelTemplate:"
",selectedClass:"ui-tabs-selected",spinner:"Loading…",tabTemplate:'
  • #{label}
  • '}});A.extend(A.ui.tabs.prototype,{rotation:null,rotate:function(C,F){F=F||false;var B=this,E=this.options.selected;function G(){B.rotation=setInterval(function(){E=++E string T 1 and there and H + * hash (if present) must be first argument + * + * @param {Object} [hash] optional hash to replace {tags} + * @param {String,Number} data for %s tags + * @return {String} original string with tags replaced + */ + StringEx.prototype.arg = function(){ + var pattern = /\%s|\{\w+\}/g; + var args = arguments, + len = arguments.length, + hash = arguments[0], + i = typeof hash == 'object' && !(hash instanceof String) ? 1 : 0; + + return this.replace(pattern, function(capture){ + var key = capture != '%s' && capture.match(/\w+/); + if (key) + return hash && hash[key] ? hash[key] : capture; + else + return i < len ? args[i++] : capture; + }); + } + + /** + * trim whitespace from beginning and end of string + * @return {String} trimmed string + */ + StringEx.prototype.trim = function(){ + return this.replace(/^\s+/, '').replace(/\s+$/, ''); + } + + /** + * capitalize string + * @return {String} capitalized string + */ + StringEx.prototype.capitalize = function(){ + return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase(); + } + +})(); + + +/* + * device.implementation static (class) properties + */ + + +/** + * pointer to current instantiated device.implementation object. + * use to access device.implemenation namespace. + * + * @see device.implementation + */ +device.implementation.context = null; + + +/** + * emulation settings options + */ +device.implementation.options = { + + /** + * callback delay (msec) + * @property {Number} + */ + callbackDelay : 1200, + + /** + * debug flag + * @property {Boolean} + */ + debug : false, + + /** + * enabled flag + * @property {Boolean} + */ + enabled : true +}; + + +/** + * store of interfaces (objects) in the current device implementation. + * format: [provider][interface] + * + * @property {Object} + */ +device.implementation.interfaces = {}; + + +/** + * store of data objects defined for current implementation. + * data is added useing the loadData method. + * + * @property {Object} format depends on data + */ +device.implementation.data = {}; + + +/** + * store of event listeners + * format: [provider][eventType] + */ +device.implementation.listeners = {}; + + +/* + * device.implementation static (class) methods + */ + + +/** + * Add a service provider to device implementation + * + * @param {string} provider Name of service provider, eg, "Service.Calendar" + * @param {string} Interface Name of interface, eg, "IDataService" + * @param {Object} serviceProvider Service object + * @return none + */ +device.implementation.extend = function(provider, Interface, serviceProvider){ + + if (!device.implementation.interfaces[provider]) + device.implementation.interfaces[provider] = {}; + + device.implementation.interfaces[provider][Interface] = serviceProvider; +}; + + +/** + * Internal implementation to return a service provider interface object + * + * @param {String} provider Service provider name + * @param {String} Interface Provider interface name + * @exception {String} exception thrown if provider or interface is not implemented + * @return {Object} the service provider interface object or 'undefined' + */ +device.implementation.getInterface = function(provider, Interface){ + + if (device.implementation.interfaces[provider] + && typeof device.implementation.interfaces[provider][Interface] == 'object') + { + var service = new Object(); + service[Interface] = device.implementation.interfaces[provider][Interface]; + return service; + } + else + throw 'Error: unknown error'; +}; + + +/** + * Loads data to the data store + * + * @param {String} provider Service provider name + * @param {String} type Data name/label + * @param {Function,Object,Array} dataFactory Function to generate the data object, or array/object + * @return none + */ +device.implementation.loadData = function(provider, type, dataFactory){ + + type = type || 'default'; + if (!device.implementation.data[provider]) + device.implementation.data[provider] = {}; + + device.implementation.data[provider][type] = + typeof dataFactory == 'function' + ? dataFactory() + : dataFactory; +}; + + +/** + * trigger an event listener + * + * @param {String} provider Service provider name + * @param {String} eventType event type + * @param {Variant} data ReturnValue for callback function + */ +device.implementation.triggerListener = function(provider, eventType, data){ + + if (!device.implementation.context.hasListener(provider, eventType)) { + device.implementation.context.notify('no listener defined for provider=' + provider + ', eventType=' + eventType); + return; + } + var listener = device.implementation.listeners[provider][eventType]; + + // call the provider's handler + listener.handler(listener.transactionID, listener.criteria, listener.callback, data); +} + + + +/* + * ERROR CODES + */ +device.implementation.ERR_SUCCESS = 0; +device.implementation.ERR_INVALID_SERVICE_ARGUMENT = 1000; +device.implementation.ERR_UNKNOWN_ARGUMENT_NAME = 1001; +device.implementation.ERR_BAD_ARGUMENT_TYPE = 1002; +device.implementation.ERR_MISSING_ARGUMENT = 1003; +device.implementation.ERR_SERVICE_NOT_SUPPORTED = 1004; +device.implementation.ERR_SERVICE_IN_USE = 1005; +device.implementation.ERR_SERVICE_NOT_READY = 1006; +device.implementation.ERR_NO_MEMORY = 1007; +device.implementation.ERR_HARDWARE_NOT_AVAILABLE = 1008; +device.implementation.ERR_SEVER_BUSY = 1009; +device.implementation.ERR_ENTRY_EXISTS = 1010; +device.implementation.ERR_ACCESS_DENIED = 1011; +device.implementation.ERR_NOT_FOUND = 1012; +device.implementation.ERR_UNKNOWN_FORMAT = 1013; +device.implementation.ERR_GENERAL_ERROR = 1014; +device.implementation.ERR_CANCEL_SUCCESS = 1015; +device.implementation.ERR_SERVICE_TIMEDOUT = 1016; +device.implementation.ERR_PATH_NOT_FOUND = 1017; + + + +// instantiate device imlementation +new device.implementation(); + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/loader.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/loader.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,121 @@ +/* + * Emulator, which manages the device interacations + */ +if (typeof _BRIDGE_REF == "undefined" || !_BRIDGE_REF) { + + var _BRIDGE_REF = { + parent: window.parent || false, + nokia: window.parent.NOKIA || false, + sysInfoObject : null + }; + + _BRIDGE_REF.namespace = function(name){ + var parts = name.split('.'); + var current = _BRIDGE_REF; + for (var key in parts) { + if (!current[parts[key]]) { + current[parts[key]] = {}; + } + current = current[parts[key]]; + } + }; + + /* + * _BRIDGE_REF.helper functions + */ + _BRIDGE_REF.namespace('helper.loadScript'); + _BRIDGE_REF.helper = { + path: document.location.pathname, + loadScript: function(path){ + var head = document.getElementsByTagName("head")[0] || document.documentElement; + var script = document.createElement("script"); + + script.type = "text/javascript"; + script.src = path; + head.appendChild(script); + }, + + addEvent: function(obj, type, fn){ + if (obj.addEventListener) { + obj.addEventListener(type, fn, false); + } + else + if (obj.attachEvent) { + obj["e" + type + fn] = fn; + obj[type + fn] = function(){ + obj["e" + type + fn](window.event); + } + obj.attachEvent("on" + type, obj[type + fn]); + } + }, + + getElementsLengthInObject : function(items){ + var count = 0; + for (var i in items) + count++; + + return count; + }, + + getBatteryStrength : function(){ + + }, + + console : function(){ + if (!typeof window.console) { + _BRIDGE_REF.helper.loadScript("preview/script/lib/console.js"); + } + } + + }; + + + /* + Load Scripts + */ + _BRIDGE_REF.helper.loadScript("preview/script/lib/widget.js"); + _BRIDGE_REF.helper.loadScript("preview/script/lib/systeminfo.js"); + _BRIDGE_REF.helper.loadScript("preview/script/lib/menu.js"); + _BRIDGE_REF.helper.loadScript("preview/script/lib/menuItem.js"); + _BRIDGE_REF.helper.loadScript("preview/script/lib/console.js"); + + // Inject SAPI scripts + if (_BRIDGE_REF.nokia) { + var wrtVersion = _BRIDGE_REF.nokia.helper.readCookie('_WRT_VERSION'); + if ((typeof wrtVersion == 'undefined') || (wrtVersion == 'WRT 1.1')) { + _BRIDGE_REF.nokia.version = 'WRT 1.1'; + _BRIDGE_REF.nokia.helper.createCookie('_WRT_VERSION', 'WRT 1.1'); + _BRIDGE_REF.helper.loadScript("preview/script/lib/device.js"); + } + else { + _BRIDGE_REF.nokia.version = 'WRT 1.0'; + } + } + else { + _BRIDGE_REF.helper.loadScript("preview/script/lib/device.js"); + } + + /* + window native functions over-riding + */ + if ( (typeof window.frameElement != 'undefined') && (typeof _BRIDGE_REF.nokia != 'undefined') && window !== window.parent) { + // alert + window.alert = function(msg){ + return window.parent.alert(msg); + }; + + // confirm + window.confirm = function(msg){ + return window.parent.confirm(msg); + }; + + // prompt + window.prompt = function(msg, str){ + return window.parent.prompt(msg, str) + }; + } + + // make TRUE loader.js script loaded + window.parent.NOKIA.scriptsLoaded.loader = true; + +} \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/menu.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/menu.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,497 @@ +/** + * widget object constructor + * @param {void} + * widget() + * @return {void} + */ + +if (typeof window.menu == "undefined" || !window.menu) +{ + window.menu = + { + author : 'Nokia WRT Emulation Library', + items : [], + index : null, + isDimmed : false, + + // Event triggers + onShow : null, + onRightSoftKeySelect : null, + }; + + + /* + Function : menu.append() + Argument : MenuItem Object + Returns : Void + Description : Function appends MenuItem to a Menu Object + */ + menu.append = function(MenuItem) + { + if(this.allowedTypeOf(MenuItem)) + { + var i; + var flag = true; + try{ + for(var key in this.items) + { + if(this.items[key].id == MenuItem.id) + { + flag = false; + break; + } + }} catch(e){ } + if(flag) + { + // MenuItem.parent = this; + this.items[MenuItem.id] = MenuItem; + } + } + } + + + /* + Function : menu.remove() + Argument : MenuItem Object + Returns : Void + Description : Function Remove the menuItem and its children from the container options menu. + */ + menu.remove = function(MenuItem) + { + if(!this.allowedTypeOf(MenuItem)) + return false; + + var flag = false; + if (this.items.length) { + for (var key in this.items) { + if (this.items[key].id == MenuItem.id) { + flag = true; + break; + } + } + } + if(flag) + { + this.items.splice(key, 1); + } + } + + /* + Function : menu.clear() + Argument : Void + Returns : Void + Description : Clears (deletes) all the menu items in the menupane. + */ + menu.clear = function() + { + try + { + this.items.splice(0, this.items.length); + }catch(e){} + } + + + /* + Function : Menu.getMenuItemById(id) + Argument : Integer + Returns : MenuItem Object + Description : Function get the MenuItem Object with the reference of id + */ + menu.getMenuItemById = function(id) + { + var menuItemRef = menu.menuItemExhistsById(this, id, 0); + if(this.allowedTypeOf(menuItemRef)) + return menuItemRef; + else + return undefined; + } + + + /* + Function : Menu.getMenuItemByName(name) + Argument : String + Returns : MenuItem Object + Description : Function get the MenuItem Object with the reference of String name + */ + menu.getMenuItemByName = function(name) + { + var menuItemRef = menu.menuItemExhistsById(this, name, 1); + + // if(menuItemRef !=null) + if(this.allowedTypeOf(menuItemRef)) + return menuItemRef; + else + return undefined; + } + + /* + Function : Menu.setRightSoftkeyLabel() + Argument : String, Function + Returns : Void + Description : Set the label of the right soft key to str. This enables the default text + to be changed from exit and a new function assigned by setting a callbackfunction + */ + + menu.setRightSoftkeyLabel = function(label, callback) + { + window.menu = this; + try + { + if(typeof label != '' && !label) + this.setExitToRsk(); + + else if(typeof callback != 'function' && !callback) + this.setExitToRsk(); + + else if (_BRIDGE_REF.nokia.menu.setRsk(callback)) { + _BRIDGE_REF.parent.$("#RskLabel > a")[0].innerHTML = label; + _BRIDGE_REF.nokia.menu.rsk_label = label; + _BRIDGE_REF.nokia.menu.rsk_event = callback; + _BRIDGE_REF.nokia.menu.is_rsk_overridden = true; + } + else + this.setExitToRsk(); + + }catch(e){ + // alert(e); + } + } + + + menu.setExitToRsk = function() + { + this.onRightSoftKeySelect = null; + + _BRIDGE_REF.nokia.menu.is_rsk_overridden = false; + _BRIDGE_REF.nokia.menu.rsk_label = ''; + _BRIDGE_REF.nokia.menu.rsk_event = null; + _BRIDGE_REF.parent.$("#RskLabel > a")[0].innerHTML = 'Exit'; + + _BRIDGE_REF.nokia.menu.setRsk(function(){ + _BRIDGE_REF.nokia.menu.exit(); + }); + } + + /* + Function : Menu.showSoftkeys() + Argument : Void + Returns : Void + Description : Makes the softkeys visible. By default the softkeys are not visible + + */ + menu.showSoftkeys = function() + { + /* + * Shows showSoftkeys + */ + _BRIDGE_REF.nokia.menu.softkeys_visibility = true; + _BRIDGE_REF.nokia.menu.showSoftKeys(); + } + + /* + Function : Menu.hideSoftkeys() + Argument : Void + Returns : Void + Description : Makes the softkeys invisible. By default the softkeys are not visible. + + */ + menu.hideSoftkeys = function() + { + /* + * Hide showSoftkeys + */ + _BRIDGE_REF.nokia.menu.softkeys_visibility = false; + _BRIDGE_REF.nokia.menu.hideSoftKeys(); + } + + + /* + * + * ---------------------------------------------------------------- + * Exta Functionalities which helps to make main functions to work + * ---------------------------------------------------------------- + * + */ + + menu.cancel = function() + { + _BRIDGE_REF.nokia.menu.cancel(); + } + + menu.exit = function() + { + _BRIDGE_REF.nokia.menu.exit(); + } + + + menu.triggeLSKEvent = function() + { + if(typeof(window.menu.onShow) == 'function') + { + window.menu.onShow(); + } + _BRIDGE_REF.parent.$('#softKeysPane').show(); + this.show(); + } + + menu.triggerEvent = function(MenuItemId) + { + try{ + var menuItemRef = this.menuItemExhistsById(this, MenuItemId, 0); + if(menuItemRef != null) + { + if(typeof menuItemRef.onSelect == 'function') + menuItemRef.onSelect(MenuItemId); + + if(_BRIDGE_REF.helper.getElementsLengthInObject(menuItemRef.items)) + this.show(MenuItemId); + else + this.cancel(); + + }else + { + this.show(); + } + } + catch(e) + { + alert('triggeEvent: '+MenuItemId+' >> '+e); + } + } + + menu.hasChild = function(parentId) + { + for(var i in this.items) + { + if(this.items[i].parentId == parentId) + { + return true; + } + } + return false; + } + + + menu.allowedTypeOf = function(MenuItem) + { + try + { + if( (typeof(MenuItem) == 'object') && (MenuItem.type == 'MenuItem')) + return true; + } + catch(e) + { + return false; + } + } + + menu.show = function(parentId) + { + try + { + var menuItemsPane = _BRIDGE_REF.parent.$('#MenuItemsArea') + menuItemsPane = menuItemsPane[0]; + + menuItemsPane.innerHTML = ''; + + var ul = document.createElement('ul'); + var ele = window.menu; + + if(typeof parentId != 'undefined' && typeof parentId == 'object') + { + if (typeof window.menu.onShow != null && typeof window.menu.onShow == 'function') { + window.menu.onShow(); + } + } + + if(typeof parentId == 'number') + { + var tempRef = menu.menuItemExhistsById(ele, parentId, 0); + + if(typeof parentId != 'undefined' && typeof tempRef != 'undefined') + ele = tempRef; + } + + if(_BRIDGE_REF.helper.getElementsLengthInObject(ele.items)) + { + for(var key in ele.items) + { + if(!ele.items[key].isDimmed){ + + try{ + ul.appendChild(menu.create_menuElement(ele.items[key])); + }catch(e){ } + } + } + if(typeof parentId == 'number' && _BRIDGE_REF.helper.getElementsLengthInObject(ele.items)) + { + if(ele.parent) + ul.appendChild(menu.create_normalMenuItem('Back', ele.parent.id)); + else + ul.appendChild(menu.create_normalMenuItem('Back', null)); + } + else + { + ul.appendChild(menu.create_exitMenuItem()); + } + + + if(_BRIDGE_REF.helper.getElementsLengthInObject(ele.items) > 5) + menuItemsPane.style.overflowY = 'scroll'; + else + menuItemsPane.style.overflowY = 'hidden'; + + } + else + { + menuItemsPane.style.overflowY = 'hidden'; + ul.appendChild(menu.create_exitMenuItem()); + } + menuItemsPane.innerHTML = '
      '+ul.innerHTML+'
    '; + + _BRIDGE_REF.nokia.menu.show(); + } + catch(e) + { + alert('menu.show: '+e); + } + } + + + +/* +* +* HELPER FUNCTIONS +* +*/ + + menu.menuItemExhistsById = function(menuReference, value, argumentType) + { + var flag = null; + + for(var key in menuReference.items) + { + if(!argumentType) + { + if(menuReference.items[key].id == value) + { + flag = true; + break; + } + } + else + { + if(menuReference.items[key].name == value) + { + flag = true; + break; + } + } + + if(menuReference.items[key].items != undefined && menuReference.items[key].items.length) + { + var temp = this.menuItemExhistsById(menuReference.items[key], value, argumentType); + if(temp) + return temp; + } + } + if(flag) + { + // crate a package and send it + menuReference.items[key].index = key; + return menuReference.items[key]; + } + else + return null; + } + + menu.create_menuElement = function(MenuItem) + { + var listitem = document.createElement('li'); + listitem.id = MenuItem.id; + listitem.setAttribute('onClick', 'javascript:NOKIA.emulator.child.menu.triggerEvent('+MenuItem.id+');'); + + var anchor = document.createElement('a'); + anchor.id = 'subMenuItem_'+MenuItem.id; + anchor.innerHTML = MenuItem.name; + if(_BRIDGE_REF.helper.getElementsLengthInObject(MenuItem.items)) + { + anchor.className = 'subMenuItem'; + anchor.setAttribute('href', 'javascript:NOKIA.emulator.child.menu.show('+MenuItem.id+');'); + } + listitem.appendChild(anchor); + return (listitem); + } + + menu.create_normalMenuItem = function(MenuTitle, index) + { + var listitem = document.createElement('li'); + + var anchor = document.createElement('a'); + anchor.id = 'subMenuItem_BACK'; + anchor.innerHTML = MenuTitle; + + if (MenuTitle == 'Back') { + listitem.className = 'exitOrBackBtn'; + anchor.setAttribute('href', 'javascript:NOKIA.emulator.child.menu.triggerEvent(' + index + ');'); + } + else + anchor.setAttribute('href', 'javascript:NOKIA.emulator.child.menu.triggerEvent(' + index + ');'); + + listitem.appendChild(anchor); + return (listitem); + } + + menu.create_exitMenuItem = function() + { + var listitem = document.createElement('li'); + listitem.className = 'exitOrBackBtn'; + var anchor = document.createElement('a'); + anchor.id = 'subMenuItem_EXIT'; + anchor.innerHTML = 'Exit'; + anchor.setAttribute('href', 'javascript:NOKIA.emulator.child.menu.exit();'); + listitem.setAttribute('onClick', 'javascript:NOKIA.emulator.child.menu.exit();'); + + listitem.appendChild(anchor); + return (listitem); + } + + menu.triggeRSK = function() + { + try { + if (window.menu) { + if (childToParent_Reference.$('softKeysPane').style.display != 'none') { + if (window.menu.onRightSoftKeySelect != null) { + window.menu.onRightSoftKeySelect(); + window.menu.cancel(); + } + else { + window.menu.cancel(); + } + } + } + }catch(e) + { + alert(e); + } + } + + menu.triggeLSK = function() + { + if(window.menu) + { + window.menu.show(); + if(typeof(window.menu.onShow) == 'function') + { + if(window.menu.onShow) + { + window.menu.onShow(); + } + } + } + } + + + // make TRUE menu.js script loaded + window.parent.NOKIA.scriptsLoaded.menu = true; +} \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/menuItem.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/menuItem.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,93 @@ +/* + Function : MenuItem() + Argument : Void + Returns : Void + Description : Constructor Function creates a Menu object to the WINDOW +*/ + +function MenuItem(name, id) +{ + this.id = id; + this.name = name; + this.isDimmed = false; + + this.items = []; + this.index = null; + this.parent = null; + this.type = 'MenuItem'; + + + // Event triggers + this.onSelect = null; +} + + +/* + Function : MenuItem.append(MenuItem) + Argument : Menu Object + Returns : Void + Description : Function appends childMenuItem to a MenuItem +*/ +MenuItem.prototype.append = function(childMenuItem) +{ + if( (childMenuItem != null) && (childMenuItem.type == 'MenuItem')) + { + childMenuItem.parent = this; + this.items[childMenuItem.id] = childMenuItem; + } +} + + +/* + Function : MenuItem.remove() + Argument : Menu Object + Returns : Void + Description : Function Removes childMenuItem and its children from the parent menu item. +*/ +MenuItem.prototype.remove = function(childMenuItem) +{ + if((childMenuItem != null) && (childMenuItem.type == 'MenuItem')) + { + var i = this.search(childMenuItem); + if(i > -1) + this.items.splice(i, 1); + } +} + +/* + Function : MenuItem.remove() + Argument : Menu Object + Returns : Void + Description : If flag is true the MenuItem is hidden and if flag is false the item is shown. +*/ +MenuItem.prototype.setDimmed = function(flag) +{ + this.isDimmed = flag; +} + + +/* + Function : MenuItem.search() + Argument : MenuItem Object + Returns : Integer + Description : Function Replace oldMenuItem with newMenuItem +*/ +MenuItem.prototype.search = function(MenuItem) +{ + var flag = false; + for(var i in this.items) + { + if(this.items[i].id == MenuItem.id) + { + flag = true; + break; + } + } + if(flag) + return i; + else + return -1; +} + +// make TRUE menuItem.js script loaded +window.parent.NOKIA.scriptsLoaded.menuItem = true; diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/AppManager.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/AppManager.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,223 @@ +/** + * AppManager.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.AppManager', + Interface = 'IAppManager'; + + /** + * AppManager service + */ + var AppManagerService = function(){ + this.GetList = __GetList; + this.LaunchApp = __LaunchApp; + this.LaunchDoc = __LaunchDoc; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new AppManagerService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + /** + * AppManager: GetList + * @param {Object} criteria + */ + function __GetList(criteria){ + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + if (typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^(Application|UserInstalledPackage)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + // check if a callback was provided + if (arguments.length > 1) + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.badAsync); + + var returnValue, + filter = criteria.Filter || null; + + DBase = context.getData(provider); + + if (criteria.Filter) + context.notify(_t('%s:: GetList : filter not implemented in preview').arg(provider)); + + // Type = UserInstalledPackage + if (!/UserInstalledPackage/i.test(criteria.Type)){ + + returnValue = context.Iterator( DBase[criteria.Type] || [] ); + + } else { + // Type = Application + // @todo: apply filter criteria + + returnValue = context.Iterator( DBase[criteria.Type] || [] ); + } + + return context.Result(returnValue); + } + + /** + * AppManager: LaunchApp + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __LaunchApp(criteria, callback){ + + if ((result = validator.apply('LaunchApp', arguments)) !== false) + return result; + + if (typeof criteria.ApplicationID == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingAppID); + + // app id must be in the form "s60uid://" where is + // what is returned by GetList. + var appId = criteria.ApplicationID; + + if (!/^s60uid:\/\/0x/i.test(appId)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + if (criteria.CmdLind) + context.notify(_t('%s:: LaunchApp : CmdLine not implemented in preview').arg(provider)); + + if (criteria.Options) + context.notify(_t('%s:: LaunchApp : Options not implemented in preview').arg(provider)); + + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + appId = appId.replace(/^s60uid:\/\//i, ''); + DBase = context.getData(provider); + + for(var type in DBase){ + for(var i in DBase[type]) { + var item = DBase[type][i]; + if (item.Uid == appId) { + // found! + context.notify(_t('%s:: LaunchApp : application found & launched : id=%s').arg(provider, appId)); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + } + } + // if not found + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + } + + /** + * AppManager: LaunchDoc + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __LaunchDoc(criteria, callback){ + + if ((result = validator.apply('LaunchDoc', arguments)) !== false) + return result; + + if (typeof criteria.Document == 'undefined' && typeof criteria.MimeType == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDoc); + + if (typeof criteria.Document != 'undefined' && !criteria.Document.DocumentPath) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + if (criteria.Options) + context.notify(_t('%s:: LaunchDoc : Options not implemented in preview').arg(provider)); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + // nothing to launch in emulation, just notify user + context.notify(_t('%s:: LaunchDoc : document launched').arg(provider)); + + if (criteria.Document) + // return success + return context.ErrorResult(device.implementation.ERR_SUCCESS); + else + // for mimetype, return value name of document + return context.Result('', device.implementation.ERR_SUCCESS); + } + + + + /** + * AppManager: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingTID); + + clearTimeout(criteria.TransactionID); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['AppManager',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + /** + * validate common input arguments + * 'this' is string (object) name of calling function + * + * @param {arguments} arguments of calling function + * @return {Result} Result object if error, false if no error. + */ + function validator() { + method = ''+this; + var failed = false, + criteria = arguments[0] || false; + + if (!criteria || typeof criteria != 'object') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + return failed; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + missingType : '%s:%s:Content Type Missing', + badAsync : 'AppManger:GetList:Asynchronous version of API is not supported', // typo on device! + missingAppID : '%s:%s:Application ID Missing', // double space between ID & missing!! + missingDoc : '%s:%s:Document/MimeType Missing/value more than expected length ', + missingTID : '%s:Incorrect TransactionID', + is_invalid : '%s:%s:%s is invalid' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Calendar.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Calendar.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,410 @@ +/** + * Calendar.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.Calendar' , + Interface = 'IDataSource'; + + /** + * Calendar service + */ + var CalendarService = function(){ + this.GetList = __GetList; + this.Add = __Add; + this.Delete = __Delete; + this.Import = __Import; + this.Export = __Export; + this.Cancel = __Cancel; + this.RequestNotification = __RequestNotification; + } + + device.implementation.extend(provider, Interface, new CalendarService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null, + default_calendar = 'C:Calendar'; + + /** + * Calendar: GetList + * @param {Object} criteria + */ + function __GetList(criteria){ + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + var returnValue = [], + match = null, + filter = criteria.Filter || null; + + DBase = context.getData(provider); + + // Type = Calendar + if (!/CalendarEntry/i.test(criteria.Type)){ + var cals = [default_calendar]; + if (filter && filter.DefaultCalendar === false) + cals = context.keys(DBase) + + returnValue = cals; + + } else { + // Type = CalendarEntry + var cal = default_calendar; + if (filter && filter.CalendarName) + cal = filter.CalendarName; + + if (!(cal in DBase)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badCalendar); + + // filter by id or LocalId + if (filter && (filter.id || filter.LocalId)) { + var which = filter.id ? 'id' : 'LocalId', + id = filter[which]; + + for (var i in DBase[cal]) { + if (id == DBase[cal][i][which]) { + returnValue.push(DBase[cal][i]); + } + } + } + // filter by type + else if (filter && filter.Type && !/IncludeAll/i.test(filter.Type)) { + for (var i in DBase[cal]) { + // match on type is case insensitive + if (filter.Type.toLowerCase() == DBase[cal][i].Type.toLowerCase()) { + returnValue.push(DBase[cal][i]); + } + } + } + // unsupported filters + else if (filter + && (match = context.keys(filter).join().match(/StartRange|EndRange|SearchText/ig)) ) { + context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join())); + } + // return everything + else { + returnValue = DBase[cal]; + } + } + + return context.Result(context.Iterator(returnValue)); + } + + /** + * Calendar: Add + * @param {Object} criteria + */ + function __Add(criteria){ + if ((result = validator.apply('Add', arguments)) !== false) + return result; + + var Item = criteria.Item || false; + + DBase = context.getData(provider); + + // Type = Calendar + if (!/CalendarEntry/i.test(criteria.Type)){ + + if (!Item || !Item.CalendarName) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingCalendar); + + var cal = Item.CalendarName; + if (cal in DBase) { + return error(device.implementation.ERR_ENTRY_EXISTS); + } + + // @todo: validate calendar name : + // return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badCalendar); + + // create new calendar + device.implementation.loadData(provider, cal, []); + return error(device.implementation.ERR_SUCCESS); + + } else { + // Type = CalendarEntry + + if (!Item) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_missing, 'Item'); + + var cal = Item.CalendarName || default_calendar; + + // if calendar doesn't exist and it's the default, create it + if (!(cal in DBase) && cal == default_calendar) + device.implementation.loadData(provider, cal, []); + + if (!(cal in DBase)) + return error(device.implementation.ERR_NOT_FOUND); + + // update existing item? + if ('LocalId' in Item) { + + if (!Item.LocalId && Item.LocalId !== 0) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'LocalId'); + + if ('InstanceStartTime' in Item) + context.notify(_t('%s:: Add : InstanceStartTime not implemented in preview.').arg(provider)); + + // can't update id + delete Item.id; + + // search for and update item + var found = false; + for (var i in DBase[cal]) { + var entry = DBase[cal][i]; + if (entry.LocalId == Item.LocalId) { + context.extend(entry, Item); + Item.id = entry.id; + found = true; + break; + } + } + if (!found) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'LocalId'); + + } else { + // add new item + // generate new id and localId + // -- in calendar id's are string! + Item.id = String(context.getUniqueID()); + Item.LocalId = String(context.getUniqueID()); + DBase[cal].push(Item); + } + } + // return success + return context.Result(Item.id, device.implementation.ERR_SUCCESS); + } + + + /** + * Calendar: Delete + * @param {Object} criteria + * @param {function} callback function for async call (optional - valid only for CalendarEntry) + */ + function __Delete(criteria, callback){ + + if ((result = validator.apply('Delete', arguments)) !== false) + return result; + + var Data = criteria.Data || false; + if (!Data || typeof Data != 'object') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'Data'); + + // only sync call supported for Calendar + if (!/CalendarEntry/i.test(criteria.Type) && typeof callback == 'function') + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.noAsync); + + DBase = context.getData(provider); + var cal = Data.CalendarName || default_calendar; + if (!(cal in DBase)) + return error(device.implementation.ERR_NOT_FOUND); + + // Type = Calendar + if (!/CalendarEntry/i.test(criteria.Type)) { + // CalendarName is mandatory + if (!Data.CalendarName) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_missing, 'CalendarName'); + + DBase[cal] = null; + delete DBase[cal]; + } + else { + // Type = CalendarEntry + + if (!context.keys(Data).join().match(/IdList|LocalIdList|DeleteAll|StartRange|EndRange/ig)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_missing, 'Data'); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + var which = Data.IdList ? 'IdList' : 'LocalIdList', + idList = Data[which] || false; + + if (idList) { + // search for and delete items + for (var id in idList) { + id = idList[id]; + for (var i in DBase[cal]) { + if (id == DBase[cal][i][which]) { + DBase[cal].splice(i, 1); + } + } + } + } + else if (Data.DeleteAll && Data.DeleteAll === true){ + delete DBase[cal]; + DBase[cal] = []; + } + + if (Data.StartRange || Data.EndRange) { + context.notify(_t('%s:: Delete : StartRange / EndRange not implemented in preview.').arg(provider)); + } + } + // return success + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + /** + * Calendar: Import + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __Import(criteria, callback){ + + if ((result = validator.apply('Import', arguments)) !== false) + return result; + + var Data = criteria.Data || false; + if (!Data) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'Data'); + + if (!Data.FileName) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'FileName'); + + if (!Data.Format) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'Format'); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + context.notify(_t('%s:: Import : not implemented in preview.').arg(provider)); + var returnValue = context.Iterator([]); + return context.Result(returnValue, device.implementation.ERR_SUCCESS); + } + + + /** + * Calendar: Export + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __Export(criteria, callback){ + + if ((result = validator.apply('Export', arguments)) !== false) + return result; + + var Data = criteria.Data || false; + if (!Data) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'Data'); + + if (!Data.Format) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.is_invalid, 'Format'); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + context.notify(_t('%s:: Export : not implemented in preview.').arg(provider)); + var returnValue = ''; + return context.Result(returnValue, device.implementation.ERR_SUCCESS); + } + + + /** + * Calendar: RequestNotification + * @param {Object} criteria + * @param {function} callback function for async call + */ + function __RequestNotification(criteria, callback){ + + if ((result = validator.apply('RequestNotification', arguments)) !== false) + return result; + + if (typeof callback != 'function') + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.badAsync); + + context.notify(_t('%s:: RequestNotification : not implemented in preview.').arg(provider)); + var result = context.ErrorResult(device.implementation.ERR_SUCCESS); + result.TransactionID = 0; + return result; + } + + + /** + * Calendar: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingTID); + + clearTimeout(criteria.TransactionID); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['Calendar',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + /** + * validate common input arguments + * 'this' is string (object) name of calling function + * + * @param {arguments} arguments of calling function + * @return {Result} Result object if error, false if no error. + */ + function validator() { + method = ''+this; + var failed = false, + criteria = arguments[0] || false; + + if (!criteria) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + if (typeof criteria != 'object' || typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var TypeRE = /Import|Export|RequestNotification/i.test(method) + ? /^CalendarEntry$/i + : /^(Calendar|CalendarEntry)$/i; + + if (!TypeRE.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + return failed; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + badType : '%s : %s : Type is invalid', + badCalendar : '%s : %s : CalendarName is invalid', + missingCalendar : '%s : %s : CalendarName is missing', + missingTID : '%s : %s : TransactionID is missing', + badAsync : '%s : %s : Invalid async parameters', + noAsync : '%s : %s : Async not supported', + is_missing : '%s : %s : %s is missing', + is_invalid : '%s : %s : %s is invalid' + }; + + +}) (); + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Contact.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Contact.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,407 @@ +/** + * Contact.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.Contact' , + Interface = 'IDataSource'; + + /** + * Contact service + */ + var ContactService = function(){ + this.GetList = __GetList; + this.Add = __Add; + this.Delete = __Delete; + this.Import = __Import; + this.Export = __Export; + this.Organise = __Organise; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new ContactService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + /** + * Contact: GetList + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __GetList(criteria, callback){ + + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + if (!/^(Contact|Group|Database)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + var returnValue = [], + match = null, + filter = criteria.Filter || null; + + DBase = context.getData(provider); + + // Type = Database + if (/Database/i.test(criteria.Type)){ + returnValue = DBase.Database; + } + // Type = Group + else if (/Group/i.test(criteria.Type)){ + // filter by id + if (filter && filter.id) { + returnValue = findById(DBase.Group, filter.id); + if (returnValue.length == 0) + return error(device.implementation.ERR_NOT_FOUND); + } + // return all groups + else { + returnValue = DBase.Group; + } + } + // Type = Contact + else if (/Contact/i.test(criteria.Type)){ + + // filter by id + if (filter && filter.id) { + returnValue = findById(DBase.Contact, filter.id); + if (returnValue.length == 0) + return error(device.implementation.ERR_NOT_FOUND); + } + // return all contacts + else { + returnValue = DBase.Contact; + } + + // unsupported filters + if (filter + && (match = context.keys(filter).join().match(/SearchVal|DBUri/ig)) ) { + context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join())); + } + // unsupported sort + if (criteria.Sort) { + context.notify(_t('%s:: GetList : sort not implemented in preview').arg(provider)); + } + } + return context.Result(context.Iterator(returnValue)); + } + + /** + * Contact: Add + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Add(criteria, callback){ + + if ((result = validator.apply('Add', arguments)) !== false) + return result; + + if (!/^(Contact|Group)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + DBase = context.getData(provider); + var Data = criteria.Data, + item; + + // unsupported! + if (Data.DBUri) { + context.notify(_t('%s:: Add : Data.DBUri not implemented in preview').arg(provider)); + } + + // Type = Group + if (/Group/i.test(criteria.Type)){ + + if (!Data.GroupLabel) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingGroupLabel); + + // update + if (Data.id) { + returnValue = findById(DBase.Group, Data.id); + if (returnValue.length == 0) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + returnValue[0].GroupLabel = Data.GroupLabel; + //@todo: group contents!? + } + // new + else { + item = context.extend({}, Data); + item.id = String(context.getUniqueID()); + DBase.Group.push(item); + } + } + // Type = Contact + else { + // update + if (Data.id) { + returnValue = findById(DBase.Contact, Data.id); + if (returnValue.length == 0) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + context.extend(returnValue[0], Data); + } + // new + else { + item = context.extend({}, Data); + item.id = String(context.getUniqueID()); + DBase.Contact.push(item); + } + } + // return success + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Contact: Delete + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Delete(criteria, callback){ + + if ((result = validator.apply('Delete', arguments)) !== false) + return result; + + if (!/^(Contact|Group)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2); + + var Data = criteria.Data; + if (!Data.IdList) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList); + if (typeof Data.IdList != 'object') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList); + + DBase = context.getData(provider); + var type = criteria.Type; + + // unsupported! + if (Data.DBUri) { + context.notify(_t('%s:: Delete : Data.DBUri not implemented in preview').arg(provider)); + } + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + // for both Group & Contact: + var i,j,id,item; + for (j in Data.IdList) { + id = Data.IdList[j]; + for (i in DBase[type]) { + item = DBase[type][i]; + if (id == item.id) { + DBase[type].splice(i, 1); + } + } + } + // return success + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Contact: Import + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Import(criteria, callback){ + + if ((result = validator.apply('Import', arguments)) !== false) + return result; + + if (!/^(Contact)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType3); + + var Data = criteria.Data; + if (!Data.SourceFile) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingSourceFile); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + context.notify(_t('%s:: Import : not implemented in preview.').arg(provider)); + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Contact: Export + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Export(criteria, callback){ + + if ((result = validator.apply('Export', arguments)) !== false) + return result; + + if (!/^(Contact)$/i.test(criteria.Type)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType4); + + var Data = criteria.Data; + if (!Data.DestinationFile) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDestinationFile); + + if (!Data.id) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + context.notify(_t('%s:: Export : not implemented in preview.').arg(provider)); + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Contact: Organise + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Organise(criteria, callback){ + + if ((result = validator.apply('Organise', arguments)) !== false) + return result; + + if (!/^(Group)$/i.test(criteria.Type)) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badType5); + + var Data = criteria.Data; + if (!Data.id) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId2); + + if (!Data.IdList) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList); + + if (typeof Data.IdList != 'object') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList); + + if (!/^(Associate|Disassociate)$/i.test(criteria.OperationType)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badOperationType); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + context.notify(_t('%s:: Organise : not implemented in preview.').arg(provider)); + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Contact: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingTID); + + clearTimeout(criteria.TransactionID); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['Contacts',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + /** + * validate common input arguments + * 'this' is string (object) name of calling function + * + * @param {arguments} arguments of calling function + * @return {Result} Result object if error, false if no error. + */ + function validator() { + method = ''+this; + var failed = false, + criteria = arguments[0] || false; + + if (!criteria || typeof criteria != 'object' || typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType, method); + + if (method == 'GetList') return failed; + + var Data = criteria.Data || false; + if (!Data) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingData, method); + if (typeof Data != 'object') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badData); + + return failed; + } + + + function findById(dbase, id){ + var result = []; + for (var i in dbase) { + if (id == dbase[i]['id']) { + result.push(dbase[i]); + } + } + return result; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + missingType : '%s : %s : Type is Missing', + badType : '%s: %s : Invalid value for Type, Must be Contact/Group/Database', + badType2 : '%s : %s : Invalid Type, must be Contact/Group', + badType3 : '%s : %s : Invalid Type,it must be Contact', + badType4 : '%s : %s : Invalid Type, it must be Contact', + badType5 : '%s : %s : Invalid Content Type, It must be Group', + badOperationType: '%s : %s : Invalid Operation Type', + missingGroupLabel: '%s : %s : Group Label is Missing', + missingTID : 'Contact : Cancel : TransactionID is missing', // not 'Contacts'!! + badAsync : '%s : %s : Invalid async parameters', + missingData : '%s : %s : %s data Missing', + badData : '%s : %s : Invalid Type of Data , Map is required', + missingIdList : '%s : %s : List of Ids is missing', + badIdList : '%s : %s : Type of IdList is wrong, List is required', + missingSourceFile: '%s : %s : Import Source Filename is Missing', + missingDestinationFile: '%s : %s : Export Destination Filename is Missing', + missingId : '%s : %s : Contact Id to be exported is missing', + missingId2 : '%s : %s : GroupId is missing', + is_missing : '%s : %s : %s is missing', + is_invalid : '%s : %s : %s is invalid' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Landmarks.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Landmarks.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,556 @@ +/** + * Landmarks.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.Landmarks', + Interface = 'IDataSource'; + + /** + * Landmark service + */ + var LandmarkService = function(){ + this.New = __New; + this.GetList = __GetList; + this.Add = __Add; + this.Delete = __Delete; + this.Import = __Import; + this.Export = __Export; + this.Organise = __Organise; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new LandmarkService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + /** + * Landmarks: New + * @param {Object} criteria + */ + function __New(criteria){ + if ((result = validator.apply('New', arguments)) !== false) + return result; + + if (typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^(Landmark|Category)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var returnValue; + + if(criteria.Type == 'Landmark') + { + returnValue = { + 'LandmarkName' : '', + 'id' : '', + 'CategoryInfo' : '', + 'LandmarkDesc' : '', + 'LandmarkPosition' : { + 'Latitude' : '', + 'Longitude' : '', + 'Altitude' : '', + 'HAccuracy' : '', + 'VAccuracy' : '', + 'VAccuracy' : '' + }, + 'CoverageRadius' : '', + 'IconFile' : '', + 'IconIndex' : '', + 'IconMaskIndex' : '', + 'LandmarkFields' : { + 'Street' : '', + 'BuildingName' : '', + 'District' : '', + 'City' : '', + 'AreaCode' : '', + 'Telephone' : '', + 'Country' : '' + } + }; + } + else //Category + { + returnValue = { + 'CategoryName' : '', + 'id' : '', + 'GlobalId' : '', + 'IconFile' : '', + 'IconIndex' : '', + 'IconMaskIndex' : '' + }; + } + + return context.Result(returnValue); + } + + /** + * Landmarks: GetList + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __GetList(criteria, callback){ + + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + if (typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^(Landmark|Category|Database)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + if (criteria.Filter) + context.notify(_t('%s:: GetList : filter not implemented in preview').arg(provider)); + + if(criteria.Sort) + context.notify(_t('%s:: GetList : Sort is not implemented in preview').arg(provider)); + + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + var returnValue = [], + match = null, + filter = criteria.Filter || null; + + DBase = context.getData(provider); + + + if (/Database/i.test(criteria.Type)) { // Type = Database + + returnValue = context.Iterator( DBase.Database || [] ); + + } else if (/Landmark/i.test(criteria.Type)){ // Type = Landmark + + returnValue = context.Iterator( DBase[criteria.Type] || [] ); + + } else { // Type = Category + + // @todo: apply filter criteria + returnValue = context.Iterator( DBase[criteria.Type] || [] ); + } + return context.Result(returnValue); + } + + /** + * Landmarks: Add + * @param {Object} criteria + */ + function __Add(criteria){ + + if ((result = validator.apply('Add', arguments)) !== false) + return result; + + if (!/^(Landmark|Category)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + + var Data = criteria.Data || false; + if(!Data){ + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingData); + } + + DBase = context.getData(provider); + + // unsupported! + if (Data.DatabaseURI) { + context.notify(_t('%s:: Add : Data.DatabaseURI not implemented in preview').arg(provider)); + } + + var item; + + // Type = Landmark + if (/Landmark/i.test(criteria.Type)){ + + if (!Data.LandmarkName) + Data.LandmarkName=""; + + var landmarkPos = Data.LandmarkPosition; + if (typeof landmarkPos != 'undefined') { + if ((typeof landmarkPos.Latitude == 'undefined' || typeof landmarkPos.Latitude != 'number') && + (typeof landmarkPos.Longitude == 'undefined' || typeof landmarkPos.Longitude != 'number') && + (typeof landmarkPos.Altitude == 'undefined' || typeof landmarkPos.Altitude != 'number') && + (typeof landmarkPos.HAccuracy == 'undefined' || typeof landmarkPos.HAccuracy != 'number') && + (typeof landmarkPos.VAccuracy == 'undefined' || typeof landmarkPos.VAccuracy != 'number')) { + + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType); + } + } + // update + if (typeof Data.id != 'undefined') { + if(typeof Data.id != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId); + + var retIndex = findById(DBase.Landmark, Data.id); + if (retIndex == -1) + return error(device.implementation.ERR_NOT_FOUND); + DBase.Landmark[retIndex] = Data; + item = Data; + } + // new + else { + item = context.extend({}, Data); + item.id = String(context.getUniqueID()); + DBase.Landmark.push(item); + } + } else { // Type = Category +// alert(typeof Data.CategoryName); + + //alert("Data.id : "+Data.id); + // update + if (typeof Data.id != 'undefined') { + if(typeof Data.id != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId); + + var retIndex = findById(DBase.Category, Data.id); + if (retIndex == -1) + return error(device.implementation.ERR_NOT_FOUND); + + DBase.Category[retIndex] = Data; + item = Data; + } + // new + else { + if (typeof Data.CategoryName == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingCategoryName); + + if(typeof Data.CategoryName != 'string' || Data.CategoryName.length <= 0) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType); + + var retIndex = findByName(DBase.Category, Data.CategoryName); + if (retIndex != -1) + return error(device.implementation.ERR_ENTRY_EXISTS); + + item = context.extend({}, Data); + item.id = String(context.getUniqueID()); + DBase.Category.push(item); + } + } + // return success + return context.Result(item.id, device.implementation.ERR_SUCCESS); + } + + /** + * Landmarks: Delete + * @param {Object} criteria + */ + function __Delete(criteria){ + + if ((result = validator.apply('Delete', arguments)) !== false) + return result; + + if (!/^(Landmark|Category)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var Data = criteria.Data || false; + if(!Data){ + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData); + } + + if (typeof Data.id == 'undefined') { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId); + } + + if (typeof Data.id != 'undefined' && typeof Data.id != 'string') { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.invalidId); + } + if(Data.id.length <= 0 ) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.invalidId); + + DBase = context.getData(provider); + + var type = criteria.Type; + + // unsupported! + if (Data.DBUri) { + context.notify(_t('%s:: Delete : Data.DBUri not implemented in preview').arg(provider)); + } + + // for both Landmark & Category: + var i,item; + + for (i in DBase[type]) { + item = DBase[type][i]; + if (Data.id == item.id) { + DBase[type].splice(i, 1); + } + } + + // return success + return error(device.implementation.ERR_SUCCESS); + } + + /** + * Landmarks: Import + * @param {Object} criteria + */ + function __Import(criteria){ + + if ((result = validator.apply('Import', arguments)) !== false) + return result; + + if (!/^(Landmark)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + context.notify(_t('%s:: Import : not implemented in preview.').arg(provider)); + + var Data = criteria.Data || false; + if(!Data) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData); + + if (!Data.SourceFile) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingSourceFile); + + if (!Data.MimeType) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingMimeType); + + if (!/^(application\/vnd.nokia.landmarkcollection\+xml|application\/vnd.nokia.landmark\+wbxml)$/i.test(Data.MimeType)) + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.invalidMime); + + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Landmarks: Export + * @param {Object} criteria + */ + function __Export(criteria){ + + if ((result = validator.apply('Export', arguments)) !== false) + return result; + + context.notify(_t('%s:: Export : not implemented in preview.').arg(provider)); + if (!/^(Landmark)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var Data = criteria.Data || false; + if(!Data){ + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData); + } + + if (!Data.DestinationFile) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDestFile); + + if (!Data.MimeType) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingMimeType); + + if (!Data.IdList) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList); + + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Landmarks: Organise + * @param {Object} criteria + */ + function __Organise(criteria){ + + if ((result = validator.apply('Organise', arguments)) !== false) + return result; + + if (!/^(Landmark)$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var Data = criteria.Data || false; + if(!Data){ + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingData); + } + + if (!Data.id || Data.id == "") + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.invalidId); + + DBase = context.getData(provider); + var categories = DBase['Category']; + var landmarks = DBase['Landmark']; + var found = false; + + + for(var i=0;i criteria.Updateoptions.UpdateTimeOut) + { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgNone); + } + + /*if((typeof criteria.Updateoptions.UpdateTimeOut != "undefined" && criteria.Updateoptions.UpdateTimeOut <= 1000000))// || (typeof criteria.Updateoptions.UpdateInterval != "undefined" && criteria.Updateoptions.UpdateInterval <= 1000000)) + { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgNone); + }*/ + } + + if(typeof criteria.LocationInformationClass != "undefined" && criteria.LocationInformationClass != "BasicLocationInformation" && criteria.LocationInformationClass != "GenericLocationInfo") // checking for errors in LocationInformationClass criteria + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgGetLocationWrongCat); + + if (/^Trace$/i.test(fun)&&(!criteria.Updateoptions || typeof criteria.Updateoptions.UpdateInterval == "undefined")) { + if(!criteria.Updateoptions) + { + criteria.Updateoptions = new Object(); + } + criteria.Updateoptions.UpdateInterval = 1000000; // Emulation only!! for convenience UpdateInterval is set to 1 second is not specified or if it less than 1 second + context.notify("Using default UpdateInterval(1000000 micro seconds)"); + } + + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); + + } + + /** + * Location: error + * @param {number,string} ErrorCode and ErrorString + * Replaces Error String with method name + */ + function error(code, msg /*, args...*/){ + + var args = ['location',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + function locationNotify(updateoptions) { + if(!updateoptions) + return; + if(typeof updateoptions.UpdateTimeOut != "undefined") + context.notify(_t("%s:: %s : Updateoptions.UpdateTimeOut not implemented in preview").arg(provider, method)); + + if(typeof updateoptions.UpdateMaxAge != "undefined") + context.notify(_t("%s:: %s : Updateoptions.UpdateMaxAge not implemented in preview").arg(provider, method)); + + if(typeof updateoptions.PartialUpdates != "undefined") + context.notify(_t("%s:: %s : Updateoptions.PartialUpdates not implemented in preview").arg(provider, method)); + } + + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + /* Latitude/longitude spherical geodesy formulae & scripts (c) Chris Veness 2002-2009 */ + /* http://www.movable-type.co.uk/scripts/latlong.html */ + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + /* + * Use Haversine formula to Calculate distance (in km) between two points specified by + * latitude/longitude (in numeric degrees) + * + * example usage from form: + * result.value = LatLon.distHaversine(lat1.value.parseDeg(), long1.value.parseDeg(), + * lat2.value.parseDeg(), long2.value.parseDeg()); + * where lat1, long1, lat2, long2, and result are form fields + */ + + + LatLon.distHaversine = function(lat1, lon1, lat2, lon2) { + var R = 6371; // earth's mean radius in km + var dLat = toRad(lat2-lat1); + var dLon = toRad(lon2-lon1); + lat1 = toRad(lat1), lat2 = toRad(lat2); + + var a = Math.sin(dLat/2) * Math.sin(dLat/2) + + Math.cos(lat1) * Math.cos(lat2) * + Math.sin(dLon/2) * Math.sin(dLon/2); + var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); + var d = R * c; + return d; + } + + + /* + * ditto using Law of Cosines + */ + LatLon.distCosineLaw = function(lat1, lon1, lat2, lon2) { + var R = 6371; // earth's mean radius in km + var d = Math.acos(Math.sin(toRad(lat1))*Math.sin(toRad(lat2)) + + Math.cos(toRad(lat1))*Math.cos(toRad(lat2))*Math.cos(toRad(lon2-lon1))) * R; + return d; + } + + + /* + * calculate (initial) bearing between two points + * see http://williams.best.vwh.net/avform.htm#Crs + */ + LatLon.bearing = function(lat1, lon1, lat2, lon2) { + lat1 = toRad(lat1); lat2 = toRad(lat2); + var dLon = toRad(lon2-lon1); + + var y = Math.sin(dLon) * Math.cos(lat2); + var x = Math.cos(lat1)*Math.sin(lat2) - + Math.sin(lat1)*Math.cos(lat2)*Math.cos(dLon); + return toBrng(Math.atan2(y, x)); + } + + + /* + * calculate destination point given start point, initial bearing (deg) and distance (km) + * see http://williams.best.vwh.net/avform.htm#LL + */ + LatLon.prototype.destPoint = function(brng, d) { + var R = 6371; // earth's mean radius in km + var lat1 = toRad(this.lat), lon1 = toRad(this.lon); + brng = toRad(brng); + + var lat2 = Math.asin( Math.sin(lat1)*Math.cos(d/R) + + Math.cos(lat1)*Math.sin(d/R)*Math.cos(brng) ); + var lon2 = lon1 + Math.atan2(Math.sin(brng)*Math.sin(d/R)*Math.cos(lat1), + Math.cos(d/R)-Math.sin(lat1)*Math.sin(lat2)); + lon2 = (lon2+Math.PI)%(2*Math.PI) - Math.PI; // normalise to -180...+180 + + if (isNaN(lat2) || isNaN(lon2)) return null; + return new LatLon(toDeg(lat2), toDeg(lon2)); + } + + + /* + * construct a LatLon object: arguments in numeric degrees + * + * note all LatLong methods expect & return numeric degrees (for lat/long & for bearings) + */ + function LatLon(lat, lon) { + this.lat = lat; + this.lon = lon; + } + + + /* + * represent point {lat, lon} in standard representation + */ + LatLon.prototype.toString = function() { + return this.lat.toLat() + ', ' + this.lon.toLon(); + } + + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + // extend String object with method for parsing degrees or lat/long values to numeric degrees + // + // this is very flexible on formats, allowing signed decimal degrees, or deg-min-sec suffixed by + // compass direction (NSEW). A variety of separators are accepted (eg 3º 37' 09"W) or fixed-width + // format without separators (eg 0033709W). Seconds and minutes may be omitted. (Minimal validation + // is done). + + function parseDeg (str) { + if (!isNaN(str)) return Number(str); // signed decimal degrees without NSEW + + var degLL = str.replace(/^-/,'').replace(/[NSEW]/i,''); // strip off any sign or compass dir'n + var dms = degLL.split(/[^0-9.]+/); // split out separate d/m/s + for (var i in dms) if (dms[i]=='') dms.splice(i,1); // remove empty elements (see note below) + switch (dms.length) { // convert to decimal degrees... + case 3: // interpret 3-part result as d/m/s + var deg = dms[0]/1 + dms[1]/60 + dms[2]/3600; break; + case 2: // interpret 2-part result as d/m + var deg = dms[0]/1 + dms[1]/60; break; + case 1: // decimal or non-separated dddmmss + if (/[NS]/i.test(str)) degLL = '0' + degLL; // - normalise N/S to 3-digit degrees + var deg = dms[0].slice(0,3)/1 + dms[0].slice(3,5)/60 + dms[0].slice(5)/3600; break; + default: return NaN; + } + if (/^-/.test(str) || /[WS]/i.test(str)) deg = -deg; // take '-', west and south as -ve + return deg; + } + // note: whitespace at start/end will split() into empty elements (except in IE) + + + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + // extend Number object with methods for converting degrees/radians + + function toRad (deg) { // convert degrees to radians + return deg * Math.PI / 180; + } + + function toDeg (rad) { // convert radians to degrees (signed) + return rad * 180 / Math.PI; + } + + function toBrng (rad) { // convert radians to degrees (as bearing: 0...360) + return (toDeg(rad)+360) % 360; + } + + + /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + + // extend Number object with methods for presenting bearings & lat/longs + + function toDMS (num) { // convert numeric degrees to deg/min/sec + var d = Math.abs(num); // (unsigned result ready for appending compass dir'n) + d += 1/7200; // add ½ second for rounding + var deg = Math.floor(d); + var min = Math.floor((d-deg)*60); + var sec = Math.floor((d-deg-min/60)*3600); + // add leading zeros if required + if (deg<100) deg = '0' + deg; if (deg<10) deg = '0' + deg; + if (min<10) min = '0' + min; + if (sec<10) sec = '0' + sec; + return deg + '\u00B0' + min + '\u2032' + sec + '\u2033'; + } + + function toLat (deg) { // convert numeric degrees to deg/min/sec latitude + return toDMS(deg).slice(1) + (deg<0 ? 'S' : 'N'); // knock off initial '0' for lat! + } + + function toLon (deg) { // convert numeric degrees to deg/min/sec longitude + return toDMS(deg) + (deg>0 ? 'E' : 'W'); + } + + function toPrecision (num,fig) { // override toPrecision method with one which displays + if (num == 0) return 0; // trailing zeros in place of exponential notation + var scale = Math.ceil(Math.log(num)*Math.LOG10E); + var mult = Math.pow(10, fig-scale); + return Math.round(num*mult)/mult; + } + + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + msgCommandNotFound : '%s : Command Not found', + msgGetLocationWrongCat : '%s : %s : wrong category info should be BasicLocationInformation/GenericLocationInfo ', + msgGetLocationBadArg : '%s : %s : BadArgument - Updateoptions', + msgGetLocationNegInt : '%s : %s : Negative Time Interval', + msgGetLocationWrongType : '%s : %s : UpdateOptions Type mismatch', + msgTraceWrongCat : '%s : %s : Invalid LocationInformationClass', + msgCalcMissingMathReq : '%s : %s : Missing argument - MathRequest', + msgCalcWrongTypeMathReq : '%s : %s : Wrong argument - MathRequest', + msgCalcMissingArgLocCord : '%s : %s : Missing argument - locationcoordinate', + msgCalcMissingArgMoveDist : '%s : %s : Missing argument - MoveByThisDistance', + msgCalcMissingArgMoveBear : '%s : %s : Missing argument - MoveByThisBearing', + msgCalcWrongTypeMoveDist : '%s : %s : TypeMismatch - MoveByThisDistance', + msgCalcWrongTypeMoveBear : '%s : %s : TypeMismatch - MoveByThisBearing', + msgCancelBadArg : '%s : %s : BadArgument – cancel type', + msgCancelMissingType : '%s : %s : Missing cancel type', + msgCancelWrongType : '%s : %s : Wrong cancel type' , + msgNone : '' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Logging.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Logging.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,535 @@ +/** + * Logging.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.Logging', + Interface = 'IDataSource'; + + /** + * Landmark service + */ + var LoggingService = function(){ + this.Add = __Add; + this.GetList = __GetList; + this.Delete = __Delete; + this.RequestNotification = __RequestNotification; + this.Cancel = __Cancel; + + } + + device.implementation.extend(provider, Interface, new LoggingService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + var transactionIds = new Array(); + var tTransactionId = -1; + var isTraceInProgress = false; + var criteriaReq; + var callbackReq; + + /** + * Logging: Add + * @param {Object} criteria + * @param (function) callback + */ + function __Add(criteria, callback, flag){ + method = "Add"; + // Async call + flag = flag || false; + + if (!flag) { + var result = ValidateAdd(criteria, callback); + if (result.ErrorCode != 0) + return result; + } + + + if(typeof callback == 'function') + { + return context.callAsync(this, arguments.callee, criteria, callback); + } + DBase = context.getData(provider); + var returnValue = DBase[criteria.Type]; + criteria.Item.id = GenerateRandomNumber()+''; + criteria.Item["EventTime"] = GetCurrDate(); + returnValue.push(criteria.Item); + return context.Result(criteria.Item.id,0); + } + + /** + * Logging: GetList + * @param {Object} criteria + * @param (function) callback + */ + function __GetList(criteria, callback, flag){ + method = "GetList"; + // Async call + flag = flag || false; + + if (!flag) { + var result = ValidateGetList(criteria, callback); + if (result.ErrorCode != 0) + return result; + } + + + if(typeof callback == 'function') + { + return context.callAsync(this, arguments.callee, criteria, callback); + } + if(criteria.Filter){ + context.notify(_t('%s:: GetList : filter not implemented in preview').arg(provider)); + } + + DBase = context.getData(provider); + var returnValue; + // @todo: apply filter criteria + returnValue = context.Iterator( DBase[criteria.Type] || [] ); + + return context.Result(returnValue,0); + } + + /** + * Logging: Delete + * @param {Object} criteria + * @param (function) callback + */ + function __Delete(criteria, callback, flag){ + method = "Delete"; + // Async call + flag = flag || false; + if (!flag) { + if (!criteria || !criteria.Type) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgTypeMissing); + + if (typeof criteria.Type != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid); + + if (criteria.Type != 'Log') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgTypeInvalid); + + if (!criteria.Data) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgDataMissing); + + if(typeof criteria.Data != 'object') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDataInvalid); + + if(typeof criteria.Data.id == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgid); + + if (typeof criteria.Data.id != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgidInvalid); + + if(criteria.Data.id == '') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgidInvalid); + } + DBase = context.getData(provider); + var returnValue,found = false; + returnValue = DBase[criteria.Type]; + for(var i=0; i 11) + { + ampm = "pm"; + } + else if(curr_hour <10) + { + curr_hour = "0"+curr_hour; + } + var curr_min = d.getMinutes(); + if(curr_min <10) + curr_min = "0"+curr_min; + + var curr_sec = d.getSeconds(); + if(curr_sec <10) + curr_sec = "0"+curr_sec; + + var strDate = d_names[curr_day]+', '+curr_date+' '+m_names[curr_month]+', '+curr_year+' '+curr_hour+':'+curr_min+':'+curr_sec+' '+ampm; + return strDate; + } + + /** + * ValidateAdd + * @param {object,function} + * Validates ADD arguments + */ + function ValidateAdd(criteria,callback) + { + var type; + if(!criteria || !criteria.Type) + return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgTypeMissing); + + if (typeof criteria.Type != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid); + + if(criteria.Type != 'Log') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgTypeInvalid); + + if (!criteria.Item) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgItemMissing); + + if(typeof criteria.Item != 'object') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgItemInvalid); + + + if(typeof criteria.Item.EventType == "undefined") + return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgEventTypeMissing); + + if(typeof criteria.Item.EventType != "number" ) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEventTypeInvalid); + + if(typeof criteria.Item.EventType == "number" && !(criteria.Item.EventType >=0 && criteria.Item.EventType <=4)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgEventTypeInvalid); + + type = typeof criteria.Item.RemoteParty; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgRemotePartyInvalid); + + type = typeof criteria.Item.Direction; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDirectionInvalid); + + if (type == "number" && (criteria.Item.Direction < 0 || criteria.Item.Direction > 6)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDirectionInvalid); + } + + type = typeof criteria.Item.EventDuration; + if(type != 'undefined' && type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEventDurationInvalid); + + type = typeof criteria.Item.DeliveryStatus; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDeliveryStatusInvalid); + + if (type == "number" && (criteria.Item.DeliveryStatus < 0 || criteria.Item.DeliveryStatus > 6)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDeliveryStatusInvalid); + } + + type = typeof criteria.Item.Subject; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgSubjectInvalid); + + type = typeof criteria.Item.PhoneNumber; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgPhoneNumberInvalid); + + type = typeof criteria.Item.Link; + if(type != 'undefined' && type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgLinkInvalid); + + type = typeof criteria.Item.LogFlags; + if(type != 'undefined' && (type != "number" || (criteria.Item.LogFlags != 1 && criteria.Item.LogFlags != 0))) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgLogFlagsInvalid); + + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); + } + + /** + * ValidateGetList + * @param {object,function} + * Validates GetList function + */ + function ValidateGetList(criteria,callback) + { + var type; + if(!criteria || !criteria.Type) + return error(device.implementation.ERR_MISSING_ARGUMENT,msg.msgTypeMissing); + + if (typeof criteria.Type != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTypeInvalid); + + if(criteria.Type != 'Log') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT,msg.msgTypeInvalid); + + type = typeof criteria.Filter; + if(type != 'undefined' && type != "object") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgFilterInvalid); + + if(type == 'undefined') + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); + + type = typeof criteria.Filter.id; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgid); + + if(type != 'undefined') + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); // if id is given all other filters will be ignored + + type = typeof criteria.Filter.EventType; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgEventTypeInvalid); + + if (type != "number" || !(criteria.Filter.EventType >= 0 && criteria.Filter.EventType <= 4)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgEventTypeInvalid); + } + type = typeof criteria.Filter.RecentList; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgRecentListInvalid); + if (type == "number" && (criteria.Filter.RecentList < -1 || criteria.Filter.RecentList > 3)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgRecentListInvalid); + } + + type = typeof criteria.Filter.RemoteParty; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgRemotePartyInvalid); + + type = typeof criteria.Filter.Direction; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDirectionInvalid); + if (type == "number" && (criteria.Filter.Direction < 0 || criteria.Filter.Direction > 6)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDirectionInvalid); + } + + type = typeof criteria.Filter.DeliveryStatus; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgDeliveryStatusInvalid); + if (type == "number" && (criteria.Filter.DeliveryStatus < 0 || criteria.Filter.DeliveryStatus > 6)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgDeliveryStatusInvalid); + } + + type = typeof criteria.Filter.EndTime; + if(type != 'undefined' && (type != "object" || typeof criteria.Filter.EndTime.getTime != "function")) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgEndTimeInvalid); + + type = typeof criteria.Filter.PhoneNumber; + if(type != 'undefined' && type != "string") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE,msg.msgPhoneNumberInvalid); + + + type = typeof criteria.Filter.LogFlags; + if (type != 'undefined') { + if (type != "number") + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgLogFlagsInvalid); + if (type == "number" && (criteria.Filter.LogFlags != 1 && criteria.Filter.LogFlags != 0)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgLogFlagsInvalid); + } + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); + } + + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + msgTypeInvalid : '%s:%s:TypeInvalid', + msgTypeMissing : '%s:%s:Type Missing', + msgFilterInvalid : '%s:%s:FilterInvalid', + msgidInvalid : '%s:%s:idInvalid', + msgRecentListInvalid : '%s:%s:RecentListInvalid', + msgPhoneNumberInvalid : '%s:%s:PhoneNumberInvalid', + msgDirectionInvalid : '%s:%s:DirectionInvalid', + msgDeliveryStatusInvalid : '%s:%s:DeliveryStatusInvalid', + msgLogFlagsInvalid : '%s:%s:LogFlagsInvalid', + msgEndTimeInvalid : '%s:%s:EndTimeInvalid', + msgRemotePartyInvalid : '%s:%s:RemotePartyInvalid', + msgEventTypeInvalid : '%s:%s:EventTypeInvalid', + msgItemInvalid : '%s:%s:ItemInvalid', + msgItemMissing : '%s:%s:ItemMissing', + msgEventTypeInvalid : '%s:%s:EventTypeInvalid', + msgEventTypeMissing : '%s:%s:EventType Missing', + msgEventDurationInvalid : '%s:%s:EventDurationInvalid', + msgSubjectInvalid : '%s:%s:SubjectInvalid', + msgEventDataInvalid : '%s:%s:EventDataInvalid', + msgLinkInvalid : '%s:%s:LinkInvalid', + msgDataInvalid : '%s:%s:DataInvalid', + msgDataMissing : '%s:%s:Data Missing', + msgid : '%s:%s:id', + msgFilterInvalid : '%s:%s:FilterInvalid', + msgFilterMissing : '%s:%s:Filter Missing', + msgDelayTimeInvalid : '%s:%s:DelayTimeInvalid', + msgDelayTimerMissing : '%s:%s:DelayTimerMissing', + msgTransactionIdInvalid : '%s:%s:TransactionIdInvalid', + msgTransactionIdMissing : '%s:%s:TransactionID Missing', + msgMissingCallback : '%s:%s:Missing Callback', + msgNoMsg : '%s:%s:' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/MediaManagement.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/MediaManagement.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,157 @@ +/** + * MediaManagement.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.MediaManagement' , + Interface = 'IDataSource'; + + /** + * MediaManagement service + */ + var MediaManagementService = function(){ + this.GetList = __GetList; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new MediaManagementService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + /** + * MediaManagement: GetList + * @param {Object} criteria + * @param {Function} callback function for async call (mandatory) + */ + function __GetList(criteria, callback, _flag){ + + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + // _flag=true indicates re-called state + _flag = _flag || false; + if (!_flag) { + + // callback is mandatory + if (typeof callback != 'function') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badAsync); + + // continue validation after callback check + if (!criteria.Filter) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing, 'Filter'); + + if (!criteria.Filter.FileType) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing, 'FileType'); + + if (!/^(Music|Sound|Image|Video|StreamingURL)$/i.test(criteria.Filter.FileType)) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE); + + // process callback + _flag = true; + return context.callAsync(this, arguments.callee, criteria, callback, _flag); + } + + var returnValue = [], + match = null, + fileType = criteria.Filter.FileType, + filter = criteria.Filter; + + // normalize filetype + fileType = fileType[0].toUpperCase() + fileType.substr(1).toLowerCase(); + fileType = fileType.replace(/url/i, 'URL'); + + DBase = context.getData(provider); + + // unsupported filters + if (filter + && (match = context.keys(filter).join().match(/Key|StartRange|EndRange/ig)) ) { + context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join())); + } + // unsupported sort + if (criteria.Sort) { + context.notify(_t('%s:: GetList : sort not implemented in preview').arg(provider)); + } + + returnValue = DBase[fileType]; + return context.Result(context.Iterator(returnValue)); + } + + + /** + * MediaManagement: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingTID); + + clearTimeout(criteria.TransactionID); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['MediaMgmt',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + /** + * validate common input arguments + * 'this' is string (object) name of calling function + * + * @param {arguments} arguments of calling function + * @return {Result} Result object if error, false if no error. + */ + function validator() { + method = ''+this; + var failed = false, + criteria = arguments[0] || false; + + if (!criteria || typeof criteria != 'object' || typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing, 'Type'); + + if (!/^FileInfo$/i.test(criteria.Type)) + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.badType); + + return failed; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + badType : '%s : %s : Type not supported', + missingTID : '%s : %s : TransactionID is missing', + badAsync : '%s : %s : Insufficient arguments for async request', + is_missing : '%s : %s : %s is missing', + is_invalid : '%s : %s : %s is invalid' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Messaging.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Messaging.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,366 @@ +/** + * Messaging.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + +(function(){ + + var provider = 'Service.Messaging' , + Interface = 'IMessaging'; + + /** + * Messaging service + */ + var MessagingService = function(){ + this.GetList = __GetList; + this.Send = __Send; + this.RegisterNotification = __RegisterNotification; + this.CancelNotification = __CancelNotification; + this.ChangeStatus = __ChangeStatus; + this.Delete = __Delete; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new MessagingService() ); + + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + /** + * Messaging: GetList + * @param {Object} criteria + */ + function __GetList(criteria){ + + if ((result = validator.apply('GetList', arguments)) !== false) + return result; + + if (!criteria.Type) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^Inbox$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var returnValue = [], + match = null, + filter = criteria.Filter || null; + + DBase = context.getData(provider); + + // filter by MessageId + if (filter && filter.MessageId) { + returnValue = findByKey(DBase.Inbox, filter.MessageId, 'MessageId'); + if (returnValue.length == 0) + return error(device.implementation.ERR_NOT_FOUND); + } + // return all messages + else { + returnValue = DBase.Inbox; + } + + // unsupported filters + if (filter + && (match = context.keys(filter).join().match(/MessageTypeList|SenderList|Subject|StartDate|EndDate/ig)) ) { + context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join())); + } + // unsupported sort + if (criteria.Sort) { + context.notify(_t('%s:: GetList : sort not implemented in preview').arg(provider)); + } + return context.Result(context.Iterator(returnValue)); + } + + /** + * Messaging: Send + * @param {Object} criteria + * @param {Function} [callback] function for async call (optional) + */ + function __Send(criteria, callback){ + + if ((result = validator.apply('Send', arguments)) !== false) + return result; + + if (!criteria.MessageType) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingMessageType); + + if (!/^(SMS|MMS)$/i.test(criteria.MessageType)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badMessageType); + + if (!criteria.To) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingTo); + + // async call? + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + context.notify(_t('%s:: Send : message sent!').arg(provider)); + + // return success + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Messaging: RegisterNotification + * @param {Object} criteria + * @param {function} callback function for async call (mandatory) + */ + function __RegisterNotification(criteria, callback){ + + if ((result = validator.apply('RegisterNotification', arguments)) !== false) + return result; + + // callback is mandatory + if (typeof callback != 'function') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badAsync); + + // continue validation after callback check + if (typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^NewMessage$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var eventType = 'NewMessage'; + + // check for multiple registration + if (context.hasListener(provider, eventType)) + return error(device.implementation.ERR_ENTRY_EXISTS); + + // process notify + return context.addListener(provider, eventType, criteria, callback, notifyHandler); + } + + function notifyHandler(transactionID, criteria, callback, data){ + + var result, + eventCode = {completed:2, error:4, progress:9}, + code = eventCode.progress; + try{ + DBase = context.getData(provider); + + // make new message + var now = new Date(); + var message = { + "MessageType": "SMS", + "Sender": "0435445454", + "Subject": "new message", + "Time": _t("%s, %s").arg(now.toString().substr(0,3), now.toLocaleString()), + "Priority": "Medium", + "Attachment": false, + "Unread": true, + "MessageId": context.getUniqueID(), + "BodyText": "My hovercraft is full of eels!" + }; + + // extend with optional data + data = typeof data=='object' && !(data instanceof Array) ? data : {}; + var returnValue = context.extend(message, data); + + result = context.Result(returnValue); + + /// add to top of inbox + DBase.Inbox.unshift(message); + } + catch(e){ + code = eventCode.error; + } + callback(transactionID, code, result); + } + + /** + * Messaging: CancelNotification + * @param {Object} criteria + */ + function __CancelNotification(criteria){ + + if ((result = validator.apply('CancelNotification', arguments)) !== false) + return result; + + if (typeof criteria.Type == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType); + + if (!/^NewMessage$/i.test(criteria.Type)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badType); + + var eventType = 'NewMessage'; + context.removeListener(provider, eventType); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + /** + * Messaging: ChangeStatus + * @param {Object} criteria + */ + function __ChangeStatus(criteria){ + + if ((result = validator.apply('ChangeStatus', arguments)) !== false) + return result; + + if (!criteria.MessageId) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing ,'MessageId'); + + if (typeof criteria.MessageId != 'number') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badMessageIdType); + + if (!criteria.Status) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing ,'Status'); + + if (!/^(Read|Unread|Replied|Forwarded)$/i.test(criteria.Status)) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badStatus); + + // check if a callback was provided + if (arguments.length > 1) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badAsync2); + + DBase = context.getData(provider); + + var i,item, found = false; + for (i in DBase.Inbox) { + item = DBase.Inbox[i]; + if (criteria.MessageId == item.MessageId) { + item.Unread = /Unread/i.test(criteria.Status); + found = true; + } + } + if (!found) + return error(device.implementation.ERR_NOT_FOUND); + + // return success + return error(device.implementation.ERR_SUCCESS); + } + + /** + * Messaging: Delete + * @param {Object} criteria + */ + function __Delete(criteria){ + + if ((result = validator.apply('Delete', arguments)) !== false) + return result; + + if (typeof criteria.MessageId == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingMessageId); + + if (typeof criteria.MessageId != 'number') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badMessageIdType); + + if (criteria.MessageId < 0) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.badMessageId); + + DBase = context.getData(provider); + + var i,item, found = false; + for (i in DBase.Inbox) { + item = DBase.Inbox[i]; + if (criteria.MessageId == item.MessageId) { + DBase.Inbox.splice(i, 1); + found = true; + } + } + if (!found) + return error(device.implementation.ERR_NOT_FOUND); + + // return success + return error(device.implementation.ERR_SUCCESS); + } + + + /** + * Messaging: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.is_missing, 'TransactionID'); + + clearTimeout(criteria.TransactionID); + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['Messaging',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + /** + * validate common input arguments + * 'this' is string (object) name of calling function + * + * @param {arguments} arguments of calling function + * @return {Result} Result object if error, false if no error. + */ + function validator() { + method = ''+this; + var failed = false, + criteria = arguments[0] || false; + + if (!criteria || typeof criteria != 'object') + return error(device.implementation.ERR_MISSING_ARGUMENT, + method == 'Send' + ? msg.missingMessageType + : (/ChangeStatus|Delete/.test(method) + ? msg.missingMessageId + : msg.missingType) ); + + return failed; + } + + + function findByKey(dbase, value, key){ + var result = []; + for (var i in dbase) { + if (value == dbase[i][key]) { + result.push(dbase[i]); + } + } + return result; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + missingType : '%s:%s:Type Missing', + badType : '%s:%s:Type Value Incorrect', + missingTo : '%s:%s:To Missing', + badTo : '%s:%s:To Value Incorrect', + missingMessageType : '%s:%s:MessageType Missing', + badMessageType : '%s:%s:MessageType Value Incorrect', + badAsync : '%s:%s:Synchronous Operation not supported', + badAsync2 : '%s:%s:Asynchronous Operation not supported', + missingMessageId : '%s:%s:MessageId Missing', + badMessageIdType: '%s:%s:MessageId Type Invalid', + badMessageId : '%s:%s:MessageId Value Incorrect', + badStatus : '%s:%s:Status Value Incorrect', + + is_missing : '%s:%s:%s Missing', + is_invalid : '%s:%s:%s Value Incorrect' + }; + + +}) () + diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Sensor.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/Sensor.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,250 @@ +/** + * Sensor.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + +(function(){ + + var provider = 'Service.Sensor', + Interface = 'ISensor'; + var transID = new Array(); + /** + * Sensor service + */ + var SensorService = function(){ + this.FindSensorChannel = __FindSensorChannel; + this.RegisterForNotification = __RegisterForNotification; + this.Cancel = __Cancel; + this.GetChannelProperty = __GetChannelProperty; + } + + device.implementation.extend(provider, Interface, new SensorService() ); + + /******************************************************/ + /******************************************************/ + /******************************************************/ + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null; + + + /** + * Sensor: FindSensorChannel + * @param {Object} criteria + */ + function __FindSensorChannel(criteria){ + method = 'FindSensorChannel'; + if(!criteria) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgCriteriaMissing); + + if(typeof criteria != 'object') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgCriteriaMissing); + + if(typeof criteria.SearchCriterion == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgDataMissing); + + if(typeof criteria.SearchCriterion != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgidInvalid); + + if(!(criteria.SearchCriterion== "All" || criteria.SearchCriterion== "AccelerometerAxis" || criteria.SearchCriterion=="AccelerometerDoubleTapping" || criteria.SearchCriterion=="Orientation" || criteria.SearchCriterion=="Rotation")) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgSearchParamInvalid); + + if(arguments.length > 1) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgCriteriaMissing); + + DBase = context.getData(provider); + var returnValue; + returnValue = DBase[criteria.SearchCriterion] || [] ; + + return context.Result(returnValue,0); + } + + + + /** + * Sensor: RegisterForNotification + * @param {Object} criteria, callback + */ + function __RegisterForNotification(criteria, callback, flag){ + flag = flag || false; + method = 'RegisterForNotification'; + context.notify(_t('%s:: RegisterForNotification not implemented in preview').arg(provider)); + + if(arguments.length >2 && (typeof flag != "undefined" && typeof flag != "boolean")) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgCriteriaMissing); + + if(typeof callback != 'function') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgInsufficentArgument); + + + if(!criteria) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgIncompleteInput); + + if(typeof criteria != 'object') + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgIncompleteInput); + + if(typeof criteria.ListeningType == 'undefined' || typeof criteria.ChannelInfoMap == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgIncompleteInput); + + if(typeof criteria.ListeningType != 'string') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgListenTypeInvalid); + + if(typeof criteria.ChannelInfoMap != 'object') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgChannelInfoMapInvalid); + + if(!(criteria.ListeningType== "ChannelData" )) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgOutofRange); + + if(typeof callback == 'function') + { + var result = context.callAsync(this, arguments.callee, criteria, callback); + transID.push(result.TransactionID); + return result; + } + if(flag) + transID.shift(); + + return context.ErrorResult(); + } + + + /** + * Sensor: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + + if(arguments.length > 1 && typeof criteria != "object" && typeof criteria.TransactionID != "number" && arguments[1]) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgCriteriaMissing); + + if (!criteria || typeof criteria.TransactionID == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.msgTransIDMissing); + + if (criteria.TransactionID == Infinity || criteria.TransactionID == -Infinity) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgTransIDMissing); + + if (typeof criteria.TransactionID != 'number') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgIncorrectTransID); + + for (var i=0; i 1) + return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.msgCriteriaMissing); + + DBase = context.getData(provider); + var property = DBase['SensorProperty']; + if(typeof criteria.ChannelInfoMap['ChannelId'] == 'undefined' || typeof criteria.ChannelInfoMap['ChannelId'] != 'number') + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgChannelInfoMapInvalid); + + var channel = null; + if(criteria.ChannelInfoMap['ChannelId'] == 7) + { + channel = 'AccelerometerAxis'; + } + else if(criteria.ChannelInfoMap['ChannelId'] == 8) + { + channel = 'AccelerometerDoubleTapping'; + } + else if(criteria.ChannelInfoMap['ChannelId'] == 10) + { + channel = 'Orientation'; + } + else if(criteria.ChannelInfoMap['ChannelId'] == 11) + { + channel = 'Rotation'; + } + + if(channel == null) + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.msgChannelInfoMapInvalid); + + var returnValue = property[channel][criteria.PropertyId]; + if(typeof returnValue == 'undefined') + return context.ErrorResult(device.implementation.ERR_NOT_FOUND); + return context.Result(returnValue,0) + } + + /** + * Sensor: error + * @param {number,string} ErrorCode and ErrorString + * Replaces Error String with method name + */ + function error(code, msg /*, args...*/){ + + var args = ['Sensors',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + msgInterfaceNotSupported : '%s:Requested interface not supported by the provider', + msgInterfaceMissing : '%s:Interface name missing', + msgInsufficentArgument : '%s:%s:Insufficent argument for asynchronous request', + msgListenTypeMissing : '%s:%s:Listening type missing', + msgListenTypeInvalid : '%s:%s:Listening type is invalid', + msgChannelInfoMissing : '%s:%s:ChannelInfoMap missing', + msgIncompleteInput : '%s:%s:Incomplete input param list', + msgOutofRange : '%s:%s:Listening type is out of allowed range', + msgCallbackMissing : '%s:%s:Callback missing', + msgAlreadyRegistered : '%s:%s:Notification is already registered on this channel', + msgCriteriaMissing : '%s:%s:Search criterion is missing', + msgInvalidSearchCriteria : '%s:%s:Invalid Search Criterion', + msgChannelSearchInvalid : '%s:%s:Channel search param type invalid', + msgSearchParamInvalid : '%s:%s:Invalid channel search param', + msgTransIDMissing : '%s:%s:Transaction id is missing', + msgIncorrectTransID : '%s:%s:Incorrect TransactionID', + msgInvalidTransID : '%s:%s:Invalid TransactionID', + msgPropertyIDMissing : '%s:%s:Property id missing', + msgInvalidPropertyID : '%s:%s:Property id is invalid', + msgChannelNotSupported : '%s:%s:Channel property not supported', + msgChannelInfoMapInvalid : '%s:%s:ChannelInfoMap Type Invalid' + }; + +}) () \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/SysInfo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/sapi/SysInfo.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,398 @@ +/** + * SysInfo.js + * + * Nokia Web Runtime Service API emulation + * WRT v1.1 + * + * Copyright 2009 Nokia Corporation. All rights reserved. +*/ + + +(function(){ + + var provider = 'Service.SysInfo' , + Interface = 'ISysInfo'; + + var supportedEntitiesAndKeys = { + "battery":{ + "batterystrength":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "chargingstatus":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true} + }, + "connectivity":{ + "bluetooth":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "infrared":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "activeconnections":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":false}, + "connectionstatus":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "wlanmacaddress":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true} + }, + "device":{ + "firmwareversion":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "platformversion":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "producttype":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "manufacturer":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "machineid":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "phonemodel":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "imei":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true} + }, + "display":{ + "brightness":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "screensavertimeout":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "userinactivity":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "keyguardtime":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "autolocktime":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "autolockstatus":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "wallpaper":{"GetInfo":false,"SetInfo":true,"GetNotification":false,"GetInfoModeSync":false,"InputDataType":"string"}, + "lighttimeout":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "displayresolution":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "displayorientation":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true} + }, + "features":{ + "bluetooth":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "infrared":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "camera":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "memorycard":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "fmradio":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "qwerty":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "wlan":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "usb":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "pen":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "led":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "coverui":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "sidevolumekeys":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "vibra":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true} + }, + "general":{ + "accessorystatus":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "connectedaccessories":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "inputlanguage":{"GetInfo":true,"SetInfo":true,"GetNotification":true,"GetInfoModeSync":true}, + "supportedlanguages":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "predictivetext":{"GetInfo":true,"SetInfo":true,"GetNotification":true,"GetInfoModeSync":true}, + "vibraactive":{"GetInfo":true,"SetInfo":true,"GetNotification":true,"GetInfoModeSync":true}, + "availableusbmodes":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "activeusbmode":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "flipstatus":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "gripstatus":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + + }, + "memory":{ + "driveinfo":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "listdrives":{"GetInfo":true,"SetInfo":false,"GetNotification":false,"GetInfoModeSync":true}, + "criticalmemory":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "memorycard":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true} + }, + "network":{ + "signalstrength":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "registrationstatus":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "networkmode":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":true}, + "currentnetwork":{"GetInfo":true,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "locationarea":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false}, + "cellid":{"GetInfo":false,"SetInfo":false,"GetNotification":true,"GetInfoModeSync":false} + } + }; + + /** + * SysInfo service + */ + var SysInfoService = function(){ + this.GetInfo = __GetInfo; + this.SetInfo = __SetInfo; + this.GetNotification = __GetNotification; + this.Cancel = __Cancel; + } + + device.implementation.extend(provider, Interface, new SysInfoService() ); + + var context = device.implementation.context, + _t = context._t, + method = '', + result = false, + DBase = null, + default_device = 'default'; + + /** + * SysInfo: GetInfo + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __GetInfo(criteria, callback){ + var retVal = ValidateArguments("GetInfo",criteria,callback); + if(retVal.ErrorCode != 0) + { + return retVal; + } + // Async call + if (typeof callback == 'function') { + return context.callAsync(this, arguments.callee, criteria, callback); + } + + DBase = context.getData(provider); + var returnValue = DBase; + returnValue = returnValue[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]; + returnValue.Key = criteria.Key; + returnValue.Entity = criteria.Entity; + + if(/^Connectivity$/i.test(criteria.Entity)&& /^ActiveConnections$/i.test(criteria.Key)) + { + var temp = returnValue.ConnectionList; + returnValue.ConnectionList = context.Iterator(temp); + } + else if(/^General$/i.test(criteria.Entity)&& /^ConnectedAccessories$/i.test(criteria.Key)) + { + var temp = returnValue.AccessoryList; + returnValue.AccessoryList = context.Iterator(temp); + } + else if(/^Memory$/i.test(criteria.Entity)&& /^DriveInfo$/i.test(criteria.Key)) + { + try { + var temp = criteria.SystemData.Drive; + if(temp.length > 3) + { + temp = temp.substring(0,3); + } + temp= returnValue.Drive[temp.toUpperCase()]; + if (!temp) { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.no_msg); + } + var driveInfo = new Object(); + driveInfo.Key = returnValue.Key; + driveInfo.Entity = returnValue.Entity; + driveInfo.DriveInfo = temp; + return context.Result(driveInfo); + } + catch(err) + { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.no_msg); + } + + } + return context.Result(returnValue); + } + + + /** + * SysInfo: SetInfo + * @param {Object} criteria + * @param {function} callback function for async call (optional) + */ + function __SetInfo(criteria, callback){ + var retVal = ValidateArguments("SetInfo",criteria,callback); + if(retVal.ErrorCode != 0) + { + return retVal; + } + + // Current implementation support only for 'General' -> 'InputLanguage' || 'PredictiveText' + if (/^General$/i.test(criteria.Entity) && ( /^InputLanguage$/i.test(criteria.Key) || /^PredictiveText/i.test(criteria.Key) || /^VibraActive/i.test(criteria.Key))) { + // get the DBase data + DBase = context.getData(provider); + var returnValue = DBase; + + // Check the 'SupportedLanguages' entries for Setting the new Status + if (/^InputLanguage$/i.test(criteria.Key)) { + var found = false; + var languageList = returnValue['general']['supportedlanguages']['LanguageList']; + for (var key in languageList) { + if (languageList[key] == criteria.SystemData.Status) { + found = true; + } + } + // Update the 'InputLanguage' if the value value found in the ['SupportedLanguages'] + if (found) + returnValue[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]['Status'] = criteria.SystemData.Status; + else + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.not_supported); + } + else if (/^PredictiveText$/i.test(criteria.Key)) { + if (criteria.SystemData.Status == 0 || criteria.SystemData.Status == 1) + returnValue[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]['Status'] = criteria.SystemData.Status; + else + return error(device.implementation.ERR_NOT_FOUND, msg.badType); + } + else if (/^VibraActive$/i.test(criteria.Key)) { + if (criteria.SystemData.Status == 0 || criteria.SystemData.Status == 1) + returnValue[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]['Status'] = criteria.SystemData.Status; + } + else { + return error(device.implementation.ERR_SERVICE_NOT_SUPPORTED, msg.not_supported); + } + } + else if(/^Display/i.test(criteria.Entity) && /^Wallpaper/i.test(criteria.Key)) { + if(typeof criteria.SystemData.StringData == 'undefined') + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingArgs); + returnValue[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]['StringData'] = criteria.SystemData.StringData; + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + return context.Result(result); + } + + + /** + * SysInfo: GetNotification + * @param {Object} criteria + * @param {function} callback function for async call + */ + function __GetNotification(criteria, callback){ + var retVal = ValidateArguments("GetNotification",criteria,callback); + if(retVal.ErrorCode != 0) + { + return retVal; + } + + // unsupported + if (!/^(Battery|Memory)$/i.test(criteria.Entity) || + !/^(BatteryStrength|ChargingStatus|MemoryCard)$/i.test(criteria.Key)) { + context.notify(_t('%s:: GetNotification : entity %s, key %s not implemented in preview.').arg(provider, criteria.Entity, criteria.Key)); + // register callback anyway so Cancel works. + } + + // evenType = 'entity.key' + var eventType = criteria.Entity+'.'+criteria.Key; + + // process notify + return context.addListener(provider, eventType, criteria, callback, notifyHandler); + } + + function notifyHandler(transactionID, criteria, callback, data){ + + var result, + eventCode = {completed:2, error:4, progress:9}, + code = eventCode.progress; + try{ + DBase = context.getData(provider); + var entity = criteria.Entity.toLowerCase(), + key = criteria.Key.toLowerCase(); + + // make a copy of return value + var returnValue = context.extend({},DBase[entity][key]); + + // augment with data + context.extend(returnValue, data); + + result = context.Result(returnValue); + } + catch(e){ + code = eventCode.error; + } + callback(transactionID, code, result); + } + + + + /** + * SysInfo: Cancel + * @param {Object} criteria + */ + function __Cancel(criteria){ + method = 'Cancel'; + + if (!criteria || !criteria.TransactionID) + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingTID); + + var found = context.removeListener(provider, null, criteria.TransactionID); + if (!found) + return error(device.implementation.ERR_NOT_FOUND); + else + return context.ErrorResult(device.implementation.ERR_SUCCESS); + } + + + + /******************************* + * helper functions + *******************************/ + + function error(code, msg /*, args...*/){ + + var args = ['SysInfo',method].concat([].slice.call(arguments,2)); + msg = msg ? _t().arg.apply(msg,args) : undefined; + return context.ErrorResult(code, msg); + } + + function cancelRegisteredNotify(result) + { + __Cancel({'TransactionID':result.TransactionID}); + method = 'GetNotification'; + } + + /** + * error messages + * order of %s args: Service name, method name, parameter name + */ + var msg = { + badType : '%s: %s: Type is invalid', + badSysInfo : '%s: %s: SysInfoName is invalid', + missingSysInfo : '%s: %s: SysInfoName is missing', + missingTID : '%s: %s: Transaction ID missing', + not_supported : '%s: %s: Not Supported', + is_invalid : '%s: %s: Is invalid', + missingArgs : '%s: %s: SystemData Argument Missing', + inSufficientArgs : '%s: %s: Insufficient Arguments to process', + missingInputParam : '%s: %s: Input Parameter Missing', + not_supportedSyncVer: '%s: %s: Sync Version Not Supported', + noEntity : '%s: %s: Entity: Input Parameter Missing', + noKey : '%s: %s: Key: Input Parameter Missing', + IncorrectSytemData : '%s: %s: Incorrect SystemData Type, SystemData Must be a Map', + callbackNotFound : '%s: %s: Callback object not found', + commandNotFound : '%s: %s: Command Not Supported', + unsupInterface : 'SysInfo:Requested interface not supported by the provider', + no_msg : '%s: %s: ' + }; + + /** + * Common validator for all functions + * + * + * @param {arguments} function name and arguments of calling function + * @return {Result} Error object + */ + function ValidateArguments(funName,criteria,callback) + { + method = funName; + + try { + if (/^GetNotification$/i.test(funName) && typeof callback != "function") { + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.not_supportedSyncVer); + } + + if (typeof criteria == "undefined" || typeof criteria.Entity == "undefined" || typeof criteria.Key == "undefined") { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.inSufficientArgs); + } + + if (criteria.Entity == "") { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.noEntity); + } + + if (criteria.Key == "") { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.noKey); + } + + if (/^SetInfo$/i.test(funName)) { + if (typeof criteria.SystemData == "undefined" || criteria.SystemData == '') { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingArgs); + } + if (typeof criteria.SystemData.StringData == "undefined" && typeof criteria.SystemData.Status == "undefined") { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingArgs); + } + } + + if (typeof supportedEntitiesAndKeys[criteria.Entity.toLowerCase()] == 'undefined' || typeof supportedEntitiesAndKeys[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()] == 'undefined') { + return error(device.implementation.ERR_NOT_FOUND, msg.no_msg); + } + + if (!supportedEntitiesAndKeys[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()][funName]) { + return error(device.implementation.ERR_NOT_FOUND, msg.no_msg); + } + + if (funName == "GetInfo" && !supportedEntitiesAndKeys[criteria.Entity.toLowerCase()][criteria.Key.toLowerCase()]["GetInfoModeSync"] && typeof callback != "function") { + return error(device.implementation.ERR_MISSING_ARGUMENT, msg.not_supportedSyncVer); + } + + return context.ErrorResult(device.implementation.ERR_SUCCESS, ""); + } + catch(err){ + return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType); + } + + } + +}) () \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/systeminfo.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/systeminfo.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,107 @@ +/** + This API is used to provide system related data. + It takes the sysObject as an argument that is the embeded API in the main HTML file. + While using this API outside mobile environment, User or developer need not to take any extara action in oprder to support SYSAPI. +*/ + +function systemAPI(sysObject) +{ + /* + * System Language information services + */ + sysObject.language = 'EN'; + + + + + /* + * Power information services + */ + + // Properties + sysObject.chargelevel = 5; + sysObject.chargerconnected = 0; + + // Event triggers + sysObject.onchargelevel = null; + sysObject.onchargerconnected = null; + + + + /* + * Beep tone control services + */ + sysObject.beep = function(frequency, duration){ } + + + + /* + * Network Information services + */ + + // value range between: {0-7} + sysObject.signalbars = 7; + + sysObject.networkname = 'No network'; + + // value range between: {0-7} + sysObject.networkregistrationstatus = 0; + + + + /* + * Display and keypad illumination information and control services + */ + + // Properties + sysObject.lightminintensity = 1; + sysObject.lightmaxintensity = 100; + sysObject.lightdefaultintensity = 0; + + sysObject.lightinfiniteduration = 0; + sysObject.lightmaxduration = 1; + sysObject.lightdefaultcycletime = 0; + + sysObject.lighttargetprimarydisplayandkeyboard = 0x3; + sysObject.lighttargetsystem = 1; + + // functions + sysObject.lighton = function(lighttarget, duration, intensity, fadein){ } + sysObject.lightblink = function(lighttarget, duration, onduration, offduration, intensity){ } + sysObject.lightoff = function(lighttarget, duration, fadeout){ } + + + + /* + * Vibration information and control services + */ + sysObject.vibraminintensity = 1; + sysObject.vibramaxintensity = 10; + sysObject.vibramaxduration = 100; + + // Vibration setting in the user profile is off. + sysObject.vibrasettings = 2; + + sysObject.startvibra = function(duration, intensity){ } + + sysObject.stopvibra = function(){ } + + + + + /* + * Memory and file system information services + */ + sysObject.totalram = 32; + sysObject.freeram = 10; + sysObject.drivelist = 'C'; + + sysObject.drivesize = function(drive){ return 64; } + + sysObject.drivefree = function(drive){ return 32; } + +} + + +// make TRUE systeminfo.js script loaded +window.parent.NOKIA.scriptsLoaded.systeminfo = true; \ No newline at end of file diff -r ec3f1313ae92 -r 641b65b14318 org.symbian.tools.wrttools.previewer/preview/script/lib/widget.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/org.symbian.tools.wrttools.previewer/preview/script/lib/widget.js Wed Jan 20 16:51:26 2010 -0800 @@ -0,0 +1,286 @@ +/** + * widget object constructor + * @param {void} + * widget() + * @return {void} + */ + +if (typeof window.widget == "undefined" || !window.widget) { + window.widget = { + author : 'Nokia WRT Emulation Library', + // widget identifier, dummy value + identifier: 14021981, + isrotationsupported: true, + + // widget event triggers + onshow: null, + onhide: null, + + sysInfo: [], + onload: null, + opacity: 50, + interval: 20, + isFront: false, + preferenceArray: [], + preferenceKey: 0 + }; + + + /** + * Launches the browser with the specified url + * @param {String} url + * openURL() + * @return {Void} + */ + widget.openURL = function(url){ + if (url) { + window.open(url, "New Widget Window", 'height=200 width=250'); + } + } + + + /** + * Returns previously stored preference associated with the specified key + * @param {String} Key preference value to be fetch + * preferenceForKey() + * @return {String} Value + */ + widget.preferenceForKey = function(name){ + return _BRIDGE_REF.nokia.helper.readCookie(name); + } + + + /** + * Stores the key associated with the specified preference + * @param {String} Preference value to be stored + * @param {String} Key Preference value associated to + * setPreferenceForKey() + * @return {Void} + */ + widget.setPreferenceForKey = function(preference, key){ + _BRIDGE_REF.nokia.helper.createCookie(key, preference); + } + + + + /** + * Toggle between Tabbed navigation mode or Cursor mode + * @param {Boolean} Value + * setNavigationEnabled() + * @return {Void} + */ + widget.setNavigationEnabled = function(bool){ + //This function can not be used on preview browser + } + + + + /** + * Open S0-Application identified by UID along with the specified params + * @param {Integer} Uid hexadecimal value to a specified application + * @param {String} Value + * openApplication() + * @return {Void} + */ + widget.openApplication = function(Uid, param){ + alert("openApplication function won't be simulated in this application"); + } + + + + /** + * Prepares the Widget.to do transition to specified transitionState + * @param {String} Value Transition state + * prepareForTransition() + * @return {Void} + */ + widget.prepareForTransition = function(transitionState){ + this.isFront = ("" + transitionState).toLowerCase() != "toback"; + window.document.getElementsByTagName("body")[0].style.opacity = "0.3"; + } + + + + + /** + * Does the animation to make the transition between the specified transitionState + * @param {Void} + * performTransition() + * @return {Void} + */ + widget.performTransition = function(){ + var _self = this; + this.opacity = 0; + this.interval = window.setInterval(function(){ + _self.opacity += 0.2; + if (_self.opacity > 1) { + _self.opacity = 1; + } + window.document.getElementsByTagName("body")[0].style.opacity = _self.opacity + ""; + if (_self.opacity >= 1) { + window.clearInterval(_self.interval); + window.document.getElementsByTagName("body")[0].style.opacity = "1"; + } + //do nothing + }, 50); + //do nothing + } + + + + + + /** + * Set the preferred screen orientation to landscape. + * The display will flip if the phone display orientation + * is portrait and the phone supports landscape mode. + * @param {Void} + * setDisplayLandscape() + * @return {Void} + */ + widget.setDisplayLandscape = function(){ + try { + if (this.isrotationsupported && _BRIDGE_REF.nokia.emulator.orientationSupports()) { + _BRIDGE_REF.nokia.emulator.setMode('landscape'); + } + } + catch (e) { + } + } + + + + + /** + * Set the preferred screen orientation to portrait. + * The display will flip if the phone display orientation + * is landscape and the phone supports portrait mode. + * @param {Void} + * setDisplayPortrait() + * @return {Void} + */ + widget.setDisplayPortrait = function(){ + try { + if (this.isrotationsupported && _BRIDGE_REF.nokia.emulator.orientationSupports()) { + _BRIDGE_REF.nokia.emulator.setMode('portrait'); + } + } + catch (e) { + } + } + + /** + * Allows the definition of a function to be called + * when a Widget.is displayed + * @param {Void} + * onshow() + * @return {Void} + */ + widget.onshow = function(){ + // to be implemented + } + + + + + /** + * Allows the definition of a function to be called + * when a Widget.sent into the background (hidden) + * @param {Void} + * onhide() + * @return {Void} + */ + widget.onhide = function(){ + // to be implemented + } + + + + /** + * This function returns the System API if sysinfo is included in document embed + */ + widget.enableSystemApi = function(){ + + // Identify, and Attach System-Info-Object properties + try { + var parentIframeRef = window.parent.frames[0]; + if (typeof parentIframeRef == 'object') { + if (parentIframeRef.document.embeds.length > 0) { + for (var i = 0; i < parentIframeRef.document.embeds.length; i++) { + //match the system Info API embed tag + if (parentIframeRef.document.embeds[i].type == 'application/x-systeminfo-widget') { + new systemAPI(parentIframeRef.document.embeds[i]); +// widget.sysInfo = parentIframeRef.document.embeds[i]; + + // hide the object + parentIframeRef.document.embeds[i].style.display='none'; + + // push the reference object into widget + widget.sysInfo.push(parentIframeRef.document.embeds[i]); + } + } + } + } + } + catch (e) { + alert('Error in attachSysInfo: ' + e); + } + } + + /** + * + */ + + widget.triggerListener = function(provider, eventType, data){ + if(widget.sysInfo.length){ + for(var i=0; i p > a").click(function(){ $("#BrowserNotificationBar").hide(); }); + } + } + + $('iframe')[0].src = "wrt_preview_main.html"; + + NOKIA.data.load(deviceResolutionList); + + var url = window.location.toString(); + url = url.split('/'); + + var pointer = 3; + if(url[0] == 'http:') + pointer = 2; + + var t = ''; + for(var i=pointer; i