Index: /issm/mobile/Makefile.am
===================================================================
--- /issm/mobile/Makefile.am	(revision 15389)
+++ /issm/mobile/Makefile.am	(revision 15389)
@@ -0,0 +1,6 @@
+if ANDROID
+SUBDIRS = android native
+endif
+if IOS
+SUBDIRS = ios
+endif
Index: /issm/mobile/android/ISSM/.classpath
===================================================================
--- /issm/mobile/android/ISSM/.classpath	(revision 15389)
+++ /issm/mobile/android/ISSM/.classpath	(revision 15389)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="output" path="bin/classes"/>
+</classpath>
Index: /issm/mobile/android/ISSM/.project
===================================================================
--- /issm/mobile/android/ISSM/.project	(revision 15389)
+++ /issm/mobile/android/ISSM/.project	(revision 15389)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>gov.nasa.jpl.issm.main</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /issm/mobile/android/ISSM/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM/AndroidManifest.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/AndroidManifest.xml	(revision 15389)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="gov.nasa.jpl.issm"
+    android:installLocation="auto"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="10"
+        android:targetSdkVersion="15" />
+
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMAPP"
+            android:label="@string/title_activity_issm" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.MenuPage"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSM"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.VideoActivity"
+            android:label="@string/title_activity_video" >
+        </activity>
+    </application>
+
+</manifest>
Index: /issm/mobile/android/ISSM/Makefile.am
===================================================================
--- /issm/mobile/android/ISSM/Makefile.am	(revision 15389)
+++ /issm/mobile/android/ISSM/Makefile.am	(revision 15389)
@@ -0,0 +1,1 @@
+EXTRA_DIST =  AndroidManifest.xml  assets gen jni obj project.properties src Makefile.am bin ic_launcher-web.png libs proguard-project.txt res
Index: /issm/mobile/android/ISSM/assets/Map/antarctica.petsc
===================================================================
--- /issm/mobile/android/ISSM/assets/Map/antarctica.petsc	(revision 15389)
+++ /issm/mobile/android/ISSM/assets/Map/antarctica.petsc	(revision 15389)
@@ -0,0 +1,17 @@
+%Petsc options file: SeaRISEgreenland.petsc written from Matlab solver array
+
++NoneAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
+
++DiagnosticVertAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
Index: /issm/mobile/android/ISSM/assets/Map/greenland.petsc
===================================================================
--- /issm/mobile/android/ISSM/assets/Map/greenland.petsc	(revision 15389)
+++ /issm/mobile/android/ISSM/assets/Map/greenland.petsc	(revision 15389)
@@ -0,0 +1,17 @@
+%Petsc options file: SeaRISEgreenland.petsc written from Matlab solver array
+
++NoneAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
+
++DiagnosticVertAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
Index: /issm/mobile/android/ISSM/bin/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM/bin/AndroidManifest.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/bin/AndroidManifest.xml	(revision 15389)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="gov.nasa.jpl.issm"
+    android:installLocation="auto"
+    android:versionCode="1"
+    android:versionName="1.0" >
+
+    <uses-sdk
+        android:minSdkVersion="10"
+        android:targetSdkVersion="15" />
+
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+    <uses-permission android:name="android.permission.INTERNET" />
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMAPP"
+            android:label="@string/title_activity_issm" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.MenuPage"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSM"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.VideoActivity"
+            android:label="@string/title_activity_video" >
+        </activity>
+    </application>
+
+</manifest>
Index: /issm/mobile/android/ISSM/jni/Android.mk
===================================================================
--- /issm/mobile/android/ISSM/jni/Android.mk	(revision 15389)
+++ /issm/mobile/android/ISSM/jni/Android.mk	(revision 15389)
@@ -0,0 +1,16 @@
+LOCAL_PATH:= $(call my-dir)
+my_LOCAL_PATH:=$(LOCAL_PATH)
+
+include $(call all-subdir-makefiles)
+
+LOCAL_PATH := $(my_LOCAL_PATH)
+
+include $(CLEAR_VARS)
+LOCAL_PATH := $(my_LOCAL_PATH)
+LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
+LOCAL_CFLAGS := -Wno-psabi -DHAVE_CONFIG_H
+LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog -ldl -lm
+LOCAL_MODULE := IssmJni
+LOCAL_SRC_FILES := Main.cpp 
+LOCAL_STATIC_LIBRARIES := libISSMCore libgsl libgslcblas
+include $(BUILD_SHARED_LIBRARY)
Index: /issm/mobile/android/ISSM/jni/Application.mk
===================================================================
--- /issm/mobile/android/ISSM/jni/Application.mk	(revision 15389)
+++ /issm/mobile/android/ISSM/jni/Application.mk	(revision 15389)
@@ -0,0 +1,4 @@
+APP_STL:= gnustl_static
+APP_CPPFLAGS := -frtti
+APP_CPPFLAGS += -fexceptions
+APP_ABI := armeabi
Index: /issm/mobile/android/ISSM/jni/Main.cpp
===================================================================
--- /issm/mobile/android/ISSM/jni/Main.cpp	(revision 15389)
+++ /issm/mobile/android/ISSM/jni/Main.cpp	(revision 15389)
@@ -0,0 +1,1 @@
+link ../../../native/Main.cpp
Index: /issm/mobile/android/ISSM/jni/gsllib/Android.mk
===================================================================
--- /issm/mobile/android/ISSM/jni/gsllib/Android.mk	(revision 15389)
+++ /issm/mobile/android/ISSM/jni/gsllib/Android.mk	(revision 15389)
@@ -0,0 +1,13 @@
+LOCAL_PATH:= $(call my-dir)
+my_directory:= $(LOCAL_PATH)
+include $(CLEAR_VARS)
+LOCAL_MODULE    := libgsl
+LOCAL_SRC_FILES := ../../../../../../externalpackages/gsl/install/lib/libgsl.a
+LOCAL_EXPORT_C_INCLUDES := $(ISSM_DIR)/externalpackages/gsl/install/include/gsl/
+include $(PREBUILT_STATIC_LIBRARY)
+
+LOCAL_PATH=$(my_directory)
+include $(CLEAR_VARS)
+LOCAL_MODULE    := libgslcblas
+LOCAL_SRC_FILES := ../../../../../../externalpackages/gsl/install/lib/libgslcblas.a
+include $(PREBUILT_STATIC_LIBRARY)
Index: /issm/mobile/android/ISSM/jni/issmlib/Android.mk
===================================================================
--- /issm/mobile/android/ISSM/jni/issmlib/Android.mk	(revision 15389)
+++ /issm/mobile/android/ISSM/jni/issmlib/Android.mk	(revision 15389)
@@ -0,0 +1,8 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+LOCAL_MODULE    := libISSMCore
+LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog 
+LOCAL_SRC_FILES := ../../../../../c/libISSMCore.a
+LOCAL_EXPORT_C_INCLUDES := $(ISSM_DIR)
+include $(PREBUILT_STATIC_LIBRARY)
+
Index: /issm/mobile/android/ISSM/proguard-project.txt
===================================================================
--- /issm/mobile/android/ISSM/proguard-project.txt	(revision 15389)
+++ /issm/mobile/android/ISSM/proguard-project.txt	(revision 15389)
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
Index: /issm/mobile/android/ISSM/project.properties
===================================================================
--- /issm/mobile/android/ISSM/project.properties	(revision 15389)
+++ /issm/mobile/android/ISSM/project.properties	(revision 15389)
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-17
Index: /issm/mobile/android/ISSM/res/anim/alpha.xml
===================================================================
--- /issm/mobile/android/ISSM/res/anim/alpha.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/anim/alpha.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<alpha
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromAlpha="0.0"
+    android:toAlpha="1.0"
+    android:duration="3000" />
Index: /issm/mobile/android/ISSM/res/anim/translate.xml
===================================================================
--- /issm/mobile/android/ISSM/res/anim/translate.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/anim/translate.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set
+    xmlns:android="http://schemas.android.com/apk/res/android">
+ 
+<translate
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromXDelta="0%"
+    android:toXDelta="0%"
+    android:fromYDelta="200%"
+    android:toYDelta="0%"
+    android:duration="2000"
+    android:zAdjustment="top" />
+ 
+</set>
Index: /issm/mobile/android/ISSM/res/layout/issmcore.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/issmcore.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/issmcore.xml	(revision 15389)
@@ -0,0 +1,49 @@
+<RelativeLayout 
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/relativeLay"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal"
+    android:background="@drawable/background" >
+      
+      
+    <FrameLayout
+        android:id="@+id/frame"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/solve"
+        android:layout_below="@+id/back"
+        android:layout_marginBottom="12dp" >
+    </FrameLayout>
+
+    <Button
+        android:id="@+id/solve"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:layout_marginLeft="20dp"
+        android:layout_marginBottom="18dp"
+        android:background="@drawable/btn_lightblue_glossy"
+        android:text="Solve" />
+
+    <Button
+        android:id="@+id/setting"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentRight="true"
+        android:layout_below="@+id/frame"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/btn_lightblue_glossy"
+        android:text="Settings" />
+
+    <Button
+        android:id="@+id/back"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:background="@drawable/back_button"/>
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM/res/layout/issmmapselection.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/issmmapselection.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/issmmapselection.xml	(revision 15389)
@@ -0,0 +1,32 @@
+
+    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+	android:background="@drawable/background" >
+
+        <ImageButton
+            android:id="@+id/greenland"
+            android:layout_width="150dip"
+            android:layout_height="150dip"
+            android:layout_alignParentTop="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="42dp"
+            android:background="@drawable/greenland" />
+
+		<View
+		    android:layout_width="wrap_content"
+		    android:layout_height="2dip"
+		    android:layout_marginTop="70dip"
+		    android:layout_below="@+id/greenland"
+		    android:background="#DDFFDD" />
+		
+        <ImageButton
+            android:id="@+id/antarctica"
+            android:layout_width="150dip"
+            android:layout_height="150dip"
+            android:layout_alignLeft="@+id/greenland"
+            android:layout_alignParentBottom="true"
+            android:layout_marginBottom="42dp"
+            android:background="@drawable/antarctica" />
+
+           </RelativeLayout>
Index: /issm/mobile/android/ISSM/res/layout/main_issm.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/main_issm.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/main_issm.xml	(revision 15389)
@@ -0,0 +1,9 @@
+	<ViewFlipper
+	        xmlns:android="http://schemas.android.com/apk/res/android"
+			android:id="@+id/flipper"
+			android:layout_width="fill_parent"
+			android:layout_height="fill_parent"	>
+	<include android:id="@+id/first"  layout="@layout/issmmapselection" />
+	<include android:id="@+id/second"  layout="@layout/issmcore" />
+	</ViewFlipper>
+
Index: /issm/mobile/android/ISSM/res/layout/menupage.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/menupage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/menupage.xml	(revision 15389)
@@ -0,0 +1,51 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:background="@drawable/background" >
+
+        <ImageButton
+            android:id="@+id/start"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentLeft="true"
+            android:layout_alignParentTop="true"
+            android:layout_marginLeft="19dp"
+            android:layout_marginTop="107dp"
+            android:background="@null"
+            android:src="@drawable/start" />
+        
+        <ImageButton
+            android:id="@+id/video"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentTop="true"
+            android:layout_marginRight="19dp"
+            android:layout_marginTop="107dp"
+            android:background="@null"
+            android:src="@drawable/video" />
+        
+        <ImageButton
+            android:id="@+id/intro"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/start"
+            android:layout_marginLeft="19dp"
+            android:layout_marginTop="107dp"
+            android:background="@null"
+            android:src="@drawable/intro" />
+        
+        <ImageButton
+            android:id="@+id/visitus"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/video"
+             android:layout_alignParentRight="true"
+            android:layout_marginRight="19dp"
+            android:layout_marginTop="107dp"
+            android:background="@null"
+            android:src="@drawable/visitus" />
+        
+ 
+
+    </RelativeLayout>
Index: /issm/mobile/android/ISSM/res/layout/popuptext.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/popuptext.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/popuptext.xml	(revision 15389)
@@ -0,0 +1,39 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical" 
+    android:background="@android:color/background_light">
+     <ScrollView android:layout_width="fill_parent"
+    	android:layout_height="0dip" 
+    	android:layout_weight="1">
+    	 <LinearLayout 
+		     android:layout_width="wrap_content"
+		     android:layout_height="wrap_content"
+		     android:orientation="vertical" 
+		     android:layout_margin="1dp">
+	    		<TextView
+		          android:background="#07000000"
+		          android:id="@+id/header"
+		          android:layout_width="wrap_content"
+				  android:layout_height="wrap_content"
+				  android:gravity="center"	
+				  android:textStyle="bold" 
+				  android:textSize="20sp"
+		          android:text="\tWelcome to the Ice Sheet System Model (ISSM)." >
+		      </TextView>
+		      <TextView
+		          android:background="#07000000"
+		          android:id="@+id/infotext"
+		          android:layout_width="wrap_content"
+				  android:layout_height="wrap_content"	 
+		          android:text="\tISSM is the result of a collaboration between the Jet Propulsion Laboratory and University of California at Irvine. Its purpose is to tackle the challenge of modeling the evolution of the polar ice caps in Greenland and Antarctica. \n\tISSM is funded by the NASA Cryosphere and MAP (Modeling Analysis and Prediction) programs, JPL R&amp;TD(Research, Technology and Development) and the National Science Foundation. Our main collaborators are:MSSMat Laboratory of École Centrale Paris, Argonne National Laboratory and the Department of Geology of University of Buffalo, NY.\n\tAs synthesized in the last Intergovernmental Panel on Climate Change (IPCC) Assessment Report AR4,future changes in the Greenland and Antarctic ice sheet mass, particularly due to changes in ice flow,are a major source of uncertainty that could increase sea level rise projections.\n\tTo remedy this problem, large scale ice flow models are necessary that can accurately model the evolution of Greenland and Antarctica in a warming climate. In order to achieve this goal,and improve projections of future sea level rise, ISSM relies on state of the art technologies,developed in synergy with the Research and Technology Development (R&amp;TD) at JPL." >
+			  </TextView>
+		</LinearLayout>
+	</ScrollView>
+		      <Button
+		          android:id="@+id/dismiss"
+		          android:layout_width="fill_parent"
+		          android:layout_height="wrap_content"
+		          android:text="Dismiss" >
+		      </Button>
+</LinearLayout>
Index: /issm/mobile/android/ISSM/res/layout/roundcorner.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/roundcorner.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/roundcorner.xml	(revision 15389)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <gradient
+        android:startColor="#80000000"
+        android:endColor="#80FFFFFF"
+        android:angle="45"/>
+    <padding android:left="7dp"
+        android:top="7dp"
+        android:right="7dp"
+        android:bottom="7dp" />
+    <corners android:radius="8dp" />
+</shape>
Index: /issm/mobile/android/ISSM/res/layout/seekbar_progress.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/seekbar_progress.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/seekbar_progress.xml	(revision 15389)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background">
+        <nine-patch
+            xmlns:android="http://schemas.android.com/apk/res/android"
+            android:src="@drawable/seek_bg"
+            android:dither="true"
+         />
+    </item>
+    <item android:id="@android:id/secondaryProgress">
+        <clip>
+            <shape>
+                <gradient
+                    android:startColor="#80028ac8"
+                    android:centerColor="#80127fb1"
+                    android:centerY="0.75"
+                    android:endColor="#a004638f"
+                    android:angle="270"
+                />
+            </shape>
+        </clip>
+    </item>
+    <item
+        android:id="@android:id/progress"
+        android:drawable="@layout/seekbar_progress_bg"
+    />
+</layer-list>
Index: /issm/mobile/android/ISSM/res/layout/seekbar_progress_bg.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/seekbar_progress_bg.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/seekbar_progress_bg.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <clip>
+        <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+            android:src="@drawable/blue" 	
+            android:antialias="true"
+            android:dither="false"
+            android:filter="false"
+            android:gravity="left"
+        />
+        </clip>
+    </item>
+</layer-list>
Index: /issm/mobile/android/ISSM/res/layout/settingsmenu.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/settingsmenu.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/settingsmenu.xml	(revision 15389)
@@ -0,0 +1,70 @@
+    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@layout/roundcorner">
+        
+        <TextView
+            android:id="@+id/fric"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Friction" />
+        
+        <SeekBar
+            android:id="@+id/frictionBar"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/fric"
+            android:max="490"
+        	android:progress="100" 
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+        
+       <TextView
+            android:id="@+id/temp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/frictionBar"
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Temperature" />
+        
+        <SeekBar
+            android:id="@+id/tempBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/temp" 
+            android:max="490"
+        	android:progress="100"
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+        
+        <TextView
+            android:id="@+id/sealvl"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/tempBar" 
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Sea Level"/>
+        
+         <SeekBar
+            android:id="@+id/sealvlBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/sealvl"
+            android:max="490"
+        	android:progress="100" 
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+
+         <Button
+             android:background="@drawable/btn_lightblue_glossy"
+             android:id="@+id/exitSetting"
+             android:layout_width="wrap_content"
+             android:layout_centerHorizontal="true"
+             android:layout_height="wrap_content"
+             android:layout_below="@+id/sealvlBar"
+             android:text="Set" /> 
+    </RelativeLayout>
Index: /issm/mobile/android/ISSM/res/layout/splashscreen.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/splashscreen.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/splashscreen.xml	(revision 15389)
@@ -0,0 +1,16 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/background"
+    android:layout_gravity="center"
+     android:id="@+id/lin_lay"
+    android:gravity="center"
+    android:orientation="vertical" >
+ 
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/logo"
+        android:background="@drawable/issm_logo" />
+ 
+</LinearLayout>
Index: /issm/mobile/android/ISSM/res/layout/videopage.xml
===================================================================
--- /issm/mobile/android/ISSM/res/layout/videopage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/layout/videopage.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context=".ISSM Video" >
+
+
+
+        <VideoView
+            android:id="@+id/videoview"
+            android:layout_width="fill_parent"
+            android:layout_height="fill_parent" />
+
+</LinearLayout>
Index: /issm/mobile/android/ISSM/res/menu/activity_issm.xml
===================================================================
--- /issm/mobile/android/ISSM/res/menu/activity_issm.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/menu/activity_issm.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@+id/menu_settings"
+        android:title="@string/menu_settings"
+        android:orderInCategory="100"
+        android:showAsAction="never" />
+</menu>
Index: /issm/mobile/android/ISSM/res/menu/issm_menu.xml
===================================================================
--- /issm/mobile/android/ISSM/res/menu/issm_menu.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/menu/issm_menu.xml	(revision 15389)
@@ -0,0 +1,36 @@
+    <menu xmlns:android="http://schemas.android.com/apk/res/android">
+        <item android:id="@+id/menu_color"
+          android:icon="@drawable/ic_color"
+          android:title="Color" >
+          <menu>
+          	<item android:id="@+id/cl_hsv"
+          	      android:title="HSV" />
+          	<item android:id="@+id/cl_autumn"
+          	      android:title="Autumn" />
+          	<item android:id="@+id/cl_bone"
+          	      android:title="Bone" />                
+          	<item android:id="@+id/cl_cool"
+          	      android:title="Cool" />
+          	<item android:id="@+id/cl_copper"
+          	      android:title="Copper" />
+          	<item android:id="@+id/cl_gray"
+          	      android:title="Gray" />
+          	<item android:id="@+id/cl_hot"
+          	      android:title="Hot" />
+          	<item android:id="@+id/cl_jet"
+          	      android:title="Jet" />
+          	<item android:id="@+id/cl_pink"
+          	      android:title="Pink" />
+          	<item android:id="@+id/cl_spring"
+          	      android:title="Spring" />
+          	<item android:id="@+id/cl_winter"
+          	      android:title="Winter" />
+          	<item android:id="@+id/cl_summer"
+          	      android:title="Summer" />                                                      
+          </menu>
+     </item>   
+ 
+    	<item android:id="@+id/menu_about"
+          android:icon="@drawable/ic_about"
+          android:title="About" />
+    	</menu>
Index: /issm/mobile/android/ISSM/res/values-large/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values-large/dimens.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values-large/dimens.xml	(revision 15389)
@@ -0,0 +1,7 @@
+<resources>
+
+    <dimen name="padding_small">8dp</dimen>
+    <dimen name="padding_medium">16dp</dimen>
+    <dimen name="padding_large">16dp</dimen>
+
+</resources>
Index: /issm/mobile/android/ISSM/res/values-v11/styles.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values-v11/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values-v11/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Holo.Light" />
+
+</resources>
Index: /issm/mobile/android/ISSM/res/values-v14/styles.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values-v14/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values-v14/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" />
+
+</resources>
Index: /issm/mobile/android/ISSM/res/values/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values/dimens.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values/dimens.xml	(revision 15389)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <dimen name="padding_small">8dp</dimen>
+    <dimen name="padding_medium">8dp</dimen>
+    <dimen name="padding_large">16dp</dimen>
+    <dimen name="activity_horizontal_margin">16dp</dimen>
+    <dimen name="activity_vertical_margin">16dp</dimen>
+
+</resources>
Index: /issm/mobile/android/ISSM/res/values/strings.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values/strings.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values/strings.xml	(revision 15389)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">ISSM</string>
+    <string name="hello_world">Hello world!</string>
+    <string name="menu_settings">Settings</string>
+    <string name="title_activity_issm">ISSM</string>
+    <string name="video_text">ISSM Video</string>
+    <string name="title_activity_video">VideoActivity</string>
+    <string name="action_settings">Settings</string>
+
+</resources>
Index: /issm/mobile/android/ISSM/res/values/styles.xml
===================================================================
--- /issm/mobile/android/ISSM/res/values/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM/res/values/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Light" />
+
+</resources>
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorBar.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorBar.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorBar.java	(revision 15389)
@@ -0,0 +1,94 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.view.MotionEvent;
+import android.view.View;
+/////////////////////////////////////////////////////////////
+public class ColorBar extends View
+{
+	Paint paint = new Paint();
+	Paint textpaint = new Paint();
+	//coordinate of the colorbar
+    private int width = 30;
+	private int start_x = 10;
+	private int start_y = 30;
+	private int end_y = 0;
+	boolean touch;
+	final int MAX_SCALING =255;
+	double [][] colorBuffer;
+    public ColorBar(Context context)
+    {
+        super(context);
+        setWillNotDraw(false);
+        paint.setStrokeWidth(5);
+		textpaint.setColor(Color.WHITE);
+        textpaint.setTextSize(20);
+        touch = false;
+    }
+//----------------------------------------------------------------    
+    //change the color map
+    public void setColorMap(ColorMap colorMap)
+    {
+    	this.colorBuffer = colorMap.getColorBuffer();
+    }
+//----------------------------------------------------------------        
+    @Override
+    public void onDraw(Canvas canvas) 
+    {
+    	int r,g,b;
+    	int y = start_y;
+    	for(int i = 0; i < 64; i++ )
+    	{  	
+    		r =  Math.round((float)colorBuffer[i][0]*MAX_SCALING);
+    		g =  Math.round((float)colorBuffer[i][1]*MAX_SCALING);
+    		b =  Math.round((float)colorBuffer[i][2]*MAX_SCALING);
+    		paint.setColor(Color.argb(MAX_SCALING, r, g, b));
+    		canvas.drawLine(start_x, y, start_x+width, y, paint);
+    		
+    		if(i == 60)  canvas.drawText("_0.0", start_x+width, y, textpaint);
+    		if(i == 48) canvas.drawText("_0.2", start_x+width, y, textpaint);
+    		if(i == 36) canvas.drawText("_0.4", start_x+width, y, textpaint);
+    		if(i == 24) canvas.drawText("_0.6", start_x+width, y, textpaint);
+    		if(i == 12) canvas.drawText("_0.8", start_x+width, y, textpaint);
+    		if(i == 0) canvas.drawText("_1.0", start_x+width, y, textpaint);
+    		
+    		y+=5;
+    	}
+    	
+    	end_y = y;
+    }
+//----------------------------------------------------------------        
+    //allow user to move color bar around
+    @Override
+    public boolean onTouchEvent (MotionEvent event)
+    {
+
+	      if (event.getAction() == MotionEvent.ACTION_DOWN) 
+	      {    
+	    	  int x = (int) event.getX();
+	    	  int y = (int) event.getY(); 
+	    	  if(x >= start_x && x <= start_x+width && y >= start_y && y <= end_y)
+	    		  touch = true;
+	      } 
+	      else if (event.getAction() == MotionEvent.ACTION_MOVE) 
+	      {
+	    	 if(touch)
+	    	 {
+	    		 start_x = (int) event.getX();
+	    		 start_y = (int) event.getY(); 
+	    	 }
+	    	 invalidate();
+	
+	      } 
+	      else if (event.getAction() == MotionEvent.ACTION_UP) 
+	      {
+	    	  touch = false;
+	      }
+	      return true;
+    }
+//----------------------------------------------------------------        
+}
+////////////////////////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorMap.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorMap.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ColorMap.java	(revision 15389)
@@ -0,0 +1,915 @@
+package gov.nasa.jpl.issm;
+
+/////////////////////////////////////////////////////////
+class ColorMap
+{
+	private double[][] d;
+	final int rowNumber = 64;
+//-------------------------------------------------------
+	public ColorMap()
+	{
+		setDefault();
+	}
+//-------------------------------------------------------
+	public double[][] getColorBuffer()
+	{
+		return d;
+	}
+//--------------------------------------------------------	
+	//set default color map => hsv {{{
+	public void setDefault()
+	{
+		d = new double[][]{	
+				{1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0938, 	0.0 },
+				{ 1.0, 	0.1875, 	0.0 },
+				{ 1.0, 	0.2813, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.4688, 	0.0 },
+				{ 1.0, 	0.5625, 	0.0 },
+				{ 1.0, 	0.6563, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.8438, 	0.0 },
+				{ 1.0, 	0.9375, 	0.0 },
+				{ 0.9688, 	1.0, 	0.0 },
+				{ 0.875, 	1.0, 	0.0 },
+				{ 0.7813, 	1.0, 	0.0 },
+				{ 0.6875, 	1.0, 	0.0 },
+				{ 0.5938, 	1.0, 	0.0 },
+				{ 0.5, 	1.0, 	0.0 },
+				{ 0.4063, 	1.0, 	0.0 },
+				{ 0.3125, 	1.0, 	0.0 },
+				{ 0.2188, 	1.0, 	0.0 },
+				{ 0.125, 	1.0, 	0.0 },
+				{ 0.0313, 	1.0, 	0.0 },
+				{ 0.0, 	1.0, 	0.0625 },
+				{ 0.0, 	1.0, 	0.1563 },
+				{ 0.0, 	1.0, 	0.25 },
+				{ 0.0, 	1.0, 	0.3438 },
+				{ 0.0, 	1.0, 	0.4375 },
+				{ 0.0, 	1.0, 	0.5313 },
+				{ 0.0, 	1.0, 	0.625 },
+				{ 0.0, 	1.0, 	0.7188 },
+				{ 0.0, 	1.0, 	0.8125 },
+				{ 0.0, 	1.0, 	0.9063 },
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0, 	0.9063, 	1.0 },
+				{ 0.0, 	0.8125, 	1.0 },
+				{ 0.0, 	0.7188, 	1.0 },
+				{ 0.0, 	0.625, 	1.0 },
+				{ 0.0, 	0.5313, 	1.0 },
+				{ 0.0, 	0.4375, 	1.0 },
+				{ 0.0, 	0.3438, 	1.0 },
+				{ 0.0, 	0.25, 	1.0 },
+				{ 0.0, 	0.1563, 	1.0 },
+				{ 0.0, 	0.0625, 	1.0 },
+				{ 0.0313, 	0.0, 	1.0 },
+				{ 0.125, 	0.0, 	1.0 },
+				{ 0.2188, 	0.0, 	1.0 },
+				{ 0.3125, 	0.0, 	1.0 },
+				{ 0.4063, 	0.0, 	1.0 },
+				{ 0.5, 	0.0, 	1.0 },
+				{ 0.5938, 	0.0, 	1.0 },
+				{ 0.6875, 	0.0, 	1.0 },
+				{ 0.7813, 	0.0, 	1.0 },
+				{ 0.875, 	0.0, 	1.0 },
+				{ 0.9688, 	0.0, 	1.0 },
+				{ 1.0, 	0.0, 	0.9375 },
+				{ 1.0, 	0.0, 	0.8438 },
+				{ 1.0, 	0.0, 	0.75 },
+				{ 1.0, 	0.0, 	0.6563 },
+				{ 1.0, 	0.0, 	0.5625 },
+				{ 1.0, 	0.0, 	0.4688 },
+				{ 1.0, 	0.0, 	0.375 },
+				{ 1.0, 	0.0, 	0.2813 },
+				{ 1.0, 	0.0, 	0.1875 },
+				{ 1.0, 	0.0, 	0.0938 }
+			};
+	} 
+	//}}}
+//-------------------------------------------------------
+	public void setAutumn()
+	{
+		d = new double[][]{
+				{ 1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0159, 	0.0 },
+				{ 1.0, 	0.0317, 	0.0 },
+				{ 1.0, 	0.0476, 	0.0 },
+				{ 1.0, 	0.0635, 	0.0 },
+				{ 1.0, 	0.0794, 	0.0 },
+				{ 1.0, 	0.0952, 	0.0 },
+				{ 1.0, 	0.1111, 	0.0 },
+				{ 1.0, 	0.127, 	0.0 },
+				{ 1.0, 	0.1429, 	0.0 },
+				{ 1.0, 	0.1587, 	0.0 },
+				{ 1.0, 	0.1746, 	0.0 },
+				{ 1.0, 	0.1905, 	0.0 },
+				{ 1.0, 	0.2063, 	0.0 },
+				{ 1.0, 	0.2222, 	0.0 },
+				{ 1.0, 	0.2381, 	0.0 },
+				{ 1.0, 	0.254, 	0.0 },
+				{ 1.0, 	0.2698, 	0.0 },
+				{ 1.0, 	0.2857, 	0.0 },
+				{ 1.0, 	0.3016, 	0.0 },
+				{ 1.0, 	0.3175, 	0.0 },
+				{ 1.0, 	0.3333, 	0.0 },
+				{ 1.0, 	0.3492, 	0.0 },
+				{ 1.0, 	0.3651, 	0.0 },
+				{ 1.0, 	0.381, 	0.0 },
+				{ 1.0, 	0.3968, 	0.0 },
+				{ 1.0, 	0.4127, 	0.0 },
+				{ 1.0, 	0.4286, 	0.0 },
+				{ 1.0, 	0.4444, 	0.0 },
+				{ 1.0, 	0.4603, 	0.0 },
+				{ 1.0, 	0.4762, 	0.0 },
+				{ 1.0, 	0.4921, 	0.0 },
+				{ 1.0, 	0.5079, 	0.0 },
+				{ 1.0, 	0.5238, 	0.0 },
+				{ 1.0, 	0.5397, 	0.0 },
+				{ 1.0, 	0.5556, 	0.0 },
+				{ 1.0, 	0.5714, 	0.0 },
+				{ 1.0, 	0.5873, 	0.0 },
+				{ 1.0, 	0.6032, 	0.0 },
+				{ 1.0, 	0.619, 	0.0 },
+				{ 1.0, 	0.6349, 	0.0 },
+				{ 1.0, 	0.6508, 	0.0 },
+				{ 1.0, 	0.6667, 	0.0 },
+				{ 1.0, 	0.6825, 	0.0 },
+				{ 1.0, 	0.6984, 	0.0 },
+				{ 1.0, 	0.7143, 	0.0 },
+				{ 1.0, 	0.7302, 	0.0 },
+				{ 1.0, 	0.746, 	0.0 },
+				{ 1.0, 	0.7619, 	0.0 },
+				{ 1.0, 	0.7778, 	0.0 },
+				{ 1.0, 	0.7937, 	0.0 },
+				{ 1.0, 	0.8095, 	0.0 },
+				{ 1.0, 	0.8254, 	0.0 },
+				{ 1.0, 	0.8413, 	0.0 },
+				{ 1.0, 	0.8571, 	0.0 },
+				{ 1.0, 	0.873, 	0.0 },
+				{ 1.0, 	0.8889, 	0.0 },
+				{ 1.0, 	0.9048, 	0.0 },
+				{ 1.0, 	0.9206, 	0.0 },
+				{ 1.0, 	0.9365, 	0.0 },
+				{ 1.0, 	0.9524, 	0.0 },
+				{ 1.0, 	0.9683, 	0.0 },
+				{ 1.0, 	0.9841, 	0.0 },
+				{ 1.0, 	1.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setBone()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0052 },
+				{ 0.0139, 	0.0139, 	0.0243 },
+				{ 0.0278, 	0.0278, 	0.0434 },
+				{ 0.0417, 	0.0417, 	0.0625 },
+				{ 0.0556, 	0.0556, 	0.0816 },
+				{ 0.0694, 	0.0694, 	0.1007 },
+				{ 0.0833, 	0.0833, 	0.1198 },
+				{ 0.0972, 	0.0972, 	0.1389 },
+				{ 0.1111, 	0.1111, 	0.158 },
+				{ 0.125, 	0.125, 	0.1771 },
+				{ 0.1389, 	0.1389, 	0.1962 },
+				{ 0.1528, 	0.1528, 	0.2153 },
+				{ 0.1667, 	0.1667, 	0.2344 },
+				{ 0.1806, 	0.1806, 	0.2535 },
+				{ 0.1944, 	0.1944, 	0.2726 },
+				{ 0.2083, 	0.2083, 	0.2917 },
+				{ 0.2222, 	0.2222, 	0.3108 },
+				{ 0.2361, 	0.2361, 	0.3299 },
+				{ 0.25, 	0.25, 	0.349 },
+				{ 0.2639, 	0.2639, 	0.3681 },
+				{ 0.2778, 	0.2778, 	0.3872 },
+				{ 0.2917, 	0.2917, 	0.4062 },
+				{ 0.3056, 	0.3056, 	0.4253 },
+				{ 0.3194, 	0.3194, 	0.4444 },
+				{ 0.3333, 	0.3385, 	0.4583 },
+				{ 0.3472, 	0.3576, 	0.4722 },
+				{ 0.3611, 	0.3767, 	0.4861 },
+				{ 0.375, 	0.3958, 	0.5 },
+				{ 0.3889, 	0.4149, 	0.5139 },
+				{ 0.4028, 	0.434, 	0.5278 },
+				{ 0.4167, 	0.4531, 	0.5417 },
+				{ 0.4306, 	0.4722, 	0.5556 },
+				{ 0.4444, 	0.4913, 	0.5694 },
+				{ 0.4583, 	0.5104, 	0.5833 },
+				{ 0.4722, 	0.5295, 	0.5972 },
+				{ 0.4861, 	0.5486, 	0.6111 },
+				{ 0.5, 	0.5677, 	0.625 },
+				{ 0.5139, 	0.5868, 	0.6389 },
+				{ 0.5278, 	0.6059, 	0.6528 },
+				{ 0.5417, 	0.625, 	0.6667 },
+				{ 0.5556, 	0.6441, 	0.6806 },
+				{ 0.5694, 	0.6632, 	0.6944 },
+				{ 0.5833, 	0.6823, 	0.7083 },
+				{ 0.5972, 	0.7014, 	0.7222 },
+				{ 0.6111, 	0.7205, 	0.7361 },
+				{ 0.625, 	0.7396, 	0.75 },
+				{ 0.6389, 	0.7587, 	0.7639 },
+				{ 0.6528, 	0.7778, 	0.7778 },
+				{ 0.6745, 	0.7917, 	0.7917 },
+				{ 0.6962, 	0.8056, 	0.8056 },
+				{ 0.7179, 	0.8194, 	0.8194 },
+				{ 0.7396, 	0.8333, 	0.8333 },
+				{ 0.7613, 	0.8472, 	0.8472 },
+				{ 0.783, 	0.8611, 	0.8611 },
+				{ 0.8047, 	0.875, 	0.875 },
+				{ 0.8264, 	0.8889, 	0.8889 },
+				{ 0.8481, 	0.9028, 	0.9028 },
+				{ 0.8698, 	0.9167, 	0.9167 },
+				{ 0.8915, 	0.9306, 	0.9306 },
+				{ 0.9132, 	0.9444, 	0.9444 },
+				{ 0.9349, 	0.9583, 	0.9583 },
+				{ 0.9566, 	0.9722, 	0.9722 },
+				{ 0.9783, 	0.9861, 	0.9861 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}		
+//-------------------------------------------------------
+	public void setCool()
+	{
+		d = new double[][]{
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0159, 	0.9841, 	1.0 },
+				{ 0.0317, 	0.9683, 	1.0 },
+				{ 0.0476, 	0.9524, 	1.0 },
+				{ 0.0635, 	0.9365, 	1.0 },
+				{ 0.0794, 	0.9206, 	1.0 },
+				{ 0.0952, 	0.9048, 	1.0 },
+				{ 0.1111, 	0.8889, 	1.0 },
+				{ 0.127, 	0.873, 	1.0 },
+				{ 0.1429, 	0.8571, 	1.0 },
+				{ 0.1587, 	0.8413, 	1.0 },
+				{ 0.1746, 	0.8254, 	1.0 },
+				{ 0.1905, 	0.8095, 	1.0 },
+				{ 0.2063, 	0.7937, 	1.0 },
+				{ 0.2222, 	0.7778, 	1.0 },
+				{ 0.2381, 	0.7619, 	1.0 },
+				{ 0.254, 	0.746, 	1.0 },
+				{ 0.2698, 	0.7302, 	1.0 },
+				{ 0.2857, 	0.7143, 	1.0 },
+				{ 0.3016, 	0.6984, 	1.0 },
+				{ 0.3175, 	0.6825, 	1.0 },
+				{ 0.3333, 	0.6667, 	1.0 },
+				{ 0.3492, 	0.6508, 	1.0 },
+				{ 0.3651, 	0.6349, 	1.0 },
+				{ 0.381, 	0.619, 	1.0 },
+				{ 0.3968, 	0.6032, 	1.0 },
+				{ 0.4127, 	0.5873, 	1.0 },
+				{ 0.4286, 	0.5714, 	1.0 },
+				{ 0.4444, 	0.5556, 	1.0 },
+				{ 0.4603, 	0.5397, 	1.0 },
+				{ 0.4762, 	0.5238, 	1.0 },
+				{ 0.4921, 	0.5079, 	1.0 },
+				{ 0.5079, 	0.4921, 	1.0 },
+				{ 0.5238, 	0.4762, 	1.0 },
+				{ 0.5397, 	0.4603, 	1.0 },
+				{ 0.5556, 	0.4444, 	1.0 },
+				{ 0.5714, 	0.4286, 	1.0 },
+				{ 0.5873, 	0.4127, 	1.0 },
+				{ 0.6032, 	0.3968, 	1.0 },
+				{ 0.619, 	0.381, 	1.0 },
+				{ 0.6349, 	0.3651, 	1.0 },
+				{ 0.6508, 	0.3492, 	1.0 },
+				{ 0.6667, 	0.3333, 	1.0 },
+				{ 0.6825, 	0.3175, 	1.0 },
+				{ 0.6984, 	0.3016, 	1.0 },
+				{ 0.7143, 	0.2857, 	1.0 },
+				{ 0.7302, 	0.2698, 	1.0 },
+				{ 0.746, 	0.254, 	1.0 },
+				{ 0.7619, 	0.2381, 	1.0 },
+				{ 0.7778, 	0.2222, 	1.0 },
+				{ 0.7937, 	0.2063, 	1.0 },
+				{ 0.8095, 	0.1905, 	1.0 },
+				{ 0.8254, 	0.1746, 	1.0 },
+				{ 0.8413, 	0.1587, 	1.0 },
+				{ 0.8571, 	0.1429, 	1.0 },
+				{ 0.873, 	0.127, 	1.0 },
+				{ 0.8889, 	0.1111, 	1.0 },
+				{ 0.9048, 	0.0952, 	1.0 },
+				{ 0.9206, 	0.0794, 	1.0 },
+				{ 0.9365, 	0.0635, 	1.0 },
+				{ 0.9524, 	0.0476, 	1.0 },
+				{ 0.9683, 	0.0317, 	1.0 },
+				{ 0.9841, 	0.0159, 	1.0 },
+				{ 1.0, 	0.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setCopper()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0 },
+				{ 0.0198, 	0.0124, 	0.0079 },
+				{ 0.0397, 	0.0248, 	0.0158 },
+				{ 0.0595, 	0.0372, 	0.0237 },
+				{ 0.0794, 	0.0496, 	0.0316 },
+				{ 0.0992, 	0.062, 	0.0395 },
+				{ 0.119, 	0.0744, 	0.0474 },
+				{ 0.1389, 	0.0868, 	0.0553 },
+				{ 0.1587, 	0.0992, 	0.0632 },
+				{ 0.1786, 	0.1116, 	0.0711 },
+				{ 0.1984, 	0.124, 	0.079 },
+				{ 0.2183, 	0.1364, 	0.0869 },
+				{ 0.2381, 	0.1488, 	0.0948 },
+				{ 0.2579, 	0.1612, 	0.1027 },
+				{ 0.2778, 	0.1736, 	0.1106 },
+				{ 0.2976, 	0.186, 	0.1185 },
+				{ 0.3175, 	0.1984, 	0.1263 },
+				{ 0.3373, 	0.2108, 	0.1342 },
+				{ 0.3571, 	0.2232, 	0.1421 },
+				{ 0.377, 	0.2356, 	0.15 },
+				{ 0.3968, 	0.248, 	0.1579 },
+				{ 0.4167, 	0.2604, 	0.1658 },
+				{ 0.4365, 	0.2728, 	0.1737 },
+				{ 0.4563, 	0.2852, 	0.1816 },
+				{ 0.4762, 	0.2976, 	0.1895 },
+				{ 0.496, 	0.31, 	0.1974 },
+				{ 0.5159, 	0.3224, 	0.2053 },
+				{ 0.5357, 	0.3348, 	0.2132 },
+				{ 0.5556, 	0.3472, 	0.2211 },
+				{ 0.5754, 	0.3596, 	0.229 },
+				{ 0.5952, 	0.372, 	0.2369 },
+				{ 0.6151, 	0.3844, 	0.2448 },
+				{ 0.6349, 	0.3968, 	0.2527 },
+				{ 0.6548, 	0.4092, 	0.2606 },
+				{ 0.6746, 	0.4216, 	0.2685 },
+				{ 0.6944, 	0.434, 	0.2764 },
+				{ 0.7143, 	0.4464, 	0.2843 },
+				{ 0.7341, 	0.4588, 	0.2922 },
+				{ 0.754, 	0.4712, 	0.3001 },
+				{ 0.7738, 	0.4836, 	0.308 },
+				{ 0.7937, 	0.496, 	0.3159 },
+				{ 0.8135, 	0.5084, 	0.3238 },
+				{ 0.8333, 	0.5208, 	0.3317 },
+				{ 0.8532, 	0.5332, 	0.3396 },
+				{ 0.873, 	0.5456, 	0.3475 },
+				{ 0.8929, 	0.558, 	0.3554 },
+				{ 0.9127, 	0.5704, 	0.3633 },
+				{ 0.9325, 	0.5828, 	0.3712 },
+				{ 0.9524, 	0.5952, 	0.379 },
+				{ 0.9722, 	0.6076, 	0.3869 },
+				{ 0.9921, 	0.62, 	0.3948 },
+				{ 1.0, 	0.6324, 	0.4027 },
+				{ 1.0, 	0.6448, 	0.4106 },
+				{ 1.0, 	0.6572, 	0.4185 },
+				{ 1.0, 	0.6696, 	0.4264 },
+				{ 1.0, 	0.682, 	0.4343 },
+				{ 1.0, 	0.6944, 	0.4422 },
+				{ 1.0, 	0.7068, 	0.4501 },
+				{ 1.0, 	0.7192, 	0.458 },
+				{ 1.0, 	0.7316, 	0.4659 },
+				{ 1.0, 	0.744, 	0.4738 },
+				{ 1.0, 	0.7564, 	0.4817 },
+				{ 1.0, 	0.7688, 	0.4896 },
+				{ 1.0, 	0.7812, 	0.4975 },
+			};
+	}
+//-------------------------------------------------------
+	public void setGray()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0 },
+				{ 0.0159, 	0.0159, 	0.0159 },
+				{ 0.0317, 	0.0317, 	0.0317 },
+				{ 0.0476, 	0.0476, 	0.0476 },
+				{ 0.0635, 	0.0635, 	0.0635 },
+				{ 0.0794, 	0.0794, 	0.0794 },
+				{ 0.0952, 	0.0952, 	0.0952 },
+				{ 0.1111, 	0.1111, 	0.1111 },
+				{ 0.127, 	0.127, 	0.127 },
+				{ 0.1429, 	0.1429, 	0.1429 },
+				{ 0.1587, 	0.1587, 	0.1587 },
+				{ 0.1746, 	0.1746, 	0.1746 },
+				{ 0.1905, 	0.1905, 	0.1905 },
+				{ 0.2063, 	0.2063, 	0.2063 },
+				{ 0.2222, 	0.2222, 	0.2222 },
+				{ 0.2381, 	0.2381, 	0.2381 },
+				{ 0.254, 	0.254, 	0.254 },
+				{ 0.2698, 	0.2698, 	0.2698 },
+				{ 0.2857, 	0.2857, 	0.2857 },
+				{ 0.3016, 	0.3016, 	0.3016 },
+				{ 0.3175, 	0.3175, 	0.3175 },
+				{ 0.3333, 	0.3333, 	0.3333 },
+				{ 0.3492, 	0.3492, 	0.3492 },
+				{ 0.3651, 	0.3651, 	0.3651 },
+				{ 0.381, 	0.381, 	0.381 },
+				{ 0.3968, 	0.3968, 	0.3968 },
+				{ 0.4127, 	0.4127, 	0.4127 },
+				{ 0.4286, 	0.4286, 	0.4286 },
+				{ 0.4444, 	0.4444, 	0.4444 },
+				{ 0.4603, 	0.4603, 	0.4603 },
+				{ 0.4762, 	0.4762, 	0.4762 },
+				{ 0.4921, 	0.4921, 	0.4921 },
+				{ 0.5079, 	0.5079, 	0.5079 },
+				{ 0.5238, 	0.5238, 	0.5238 },
+				{ 0.5397, 	0.5397, 	0.5397 },
+				{ 0.5556, 	0.5556, 	0.5556 },
+				{ 0.5714, 	0.5714, 	0.5714 },
+				{ 0.5873, 	0.5873, 	0.5873 },
+				{ 0.6032, 	0.6032, 	0.6032 },
+				{ 0.619, 	0.619, 	0.619 },
+				{ 0.6349, 	0.6349, 	0.6349 },
+				{ 0.6508, 	0.6508, 	0.6508 },
+				{ 0.6667, 	0.6667, 	0.6667 },
+				{ 0.6825, 	0.6825, 	0.6825 },
+				{ 0.6984, 	0.6984, 	0.6984 },
+				{ 0.7143, 	0.7143, 	0.7143 },
+				{ 0.7302, 	0.7302, 	0.7302 },
+				{ 0.746, 	0.746, 	0.746 },
+				{ 0.7619, 	0.7619, 	0.7619 },
+				{ 0.7778, 	0.7778, 	0.7778 },
+				{ 0.7937, 	0.7937, 	0.7937 },
+				{ 0.8095, 	0.8095, 	0.8095 },
+				{ 0.8254, 	0.8254, 	0.8254 },
+				{ 0.8413, 	0.8413, 	0.8413 },
+				{ 0.8571, 	0.8571, 	0.8571 },
+				{ 0.873, 	0.873, 	0.873 },
+				{ 0.8889, 	0.8889, 	0.8889 },
+				{ 0.9048, 	0.9048, 	0.9048 },
+				{ 0.9206, 	0.9206, 	0.9206 },
+				{ 0.9365, 	0.9365, 	0.9365 },
+				{ 0.9524, 	0.9524, 	0.9524 },
+				{ 0.9683, 	0.9683, 	0.9683 },
+				{ 0.9841, 	0.9841, 	0.9841 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setHot()
+	{
+		d = new double[][]{
+				{ 0.0417, 	0.0, 	0.0 },
+				{ 0.0833, 	0.0, 	0.0 },
+				{ 0.125, 	0.0, 	0.0 },
+				{ 0.1667, 	0.0, 	0.0 },
+				{ 0.2083, 	0.0, 	0.0 },
+				{ 0.25, 	0.0, 	0.0 },
+				{ 0.2917, 	0.0, 	0.0 },
+				{ 0.3333, 	0.0, 	0.0 },
+				{ 0.375, 	0.0, 	0.0 },
+				{ 0.4167, 	0.0, 	0.0 },
+				{ 0.4583, 	0.0, 	0.0 },
+				{ 0.5, 	0.0, 	0.0 },
+				{ 0.5417, 	0.0, 	0.0 },
+				{ 0.5833, 	0.0, 	0.0 },
+				{ 0.625, 	0.0, 	0.0 },
+				{ 0.6667, 	0.0, 	0.0 },
+				{ 0.7083, 	0.0, 	0.0 },
+				{ 0.75, 	0.0, 	0.0 },
+				{ 0.7917, 	0.0, 	0.0 },
+				{ 0.8333, 	0.0, 	0.0 },
+				{ 0.875, 	0.0, 	0.0 },
+				{ 0.9167, 	0.0, 	0.0 },
+				{ 0.9583, 	0.0, 	0.0 },
+				{ 1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0417, 	0.0 },
+				{ 1.0, 	0.0833, 	0.0 },
+				{ 1.0, 	0.125, 	0.0 },
+				{ 1.0, 	0.1667, 	0.0 },
+				{ 1.0, 	0.2083, 	0.0 },
+				{ 1.0, 	0.25, 	0.0 },
+				{ 1.0, 	0.2917, 	0.0 },
+				{ 1.0, 	0.3333, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.4167, 	0.0 },
+				{ 1.0, 	0.4583, 	0.0 },
+				{ 1.0, 	0.5, 	0.0 },
+				{ 1.0, 	0.5417, 	0.0 },
+				{ 1.0, 	0.5833, 	0.0 },
+				{ 1.0, 	0.625, 	0.0 },
+				{ 1.0, 	0.6667, 	0.0 },
+				{ 1.0, 	0.7083, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.7917, 	0.0 },
+				{ 1.0, 	0.8333, 	0.0 },
+				{ 1.0, 	0.875, 	0.0 },
+				{ 1.0, 	0.9167, 	0.0 },
+				{ 1.0, 	0.9583, 	0.0 },
+				{ 1.0, 	1.0, 	0.0 },
+				{ 1.0, 	1.0, 	0.0625 },
+				{ 1.0, 	1.0, 	0.125 },
+				{ 1.0, 	1.0, 	0.1875 },
+				{ 1.0, 	1.0, 	0.25 },
+				{ 1.0, 	1.0, 	0.3125 },
+				{ 1.0, 	1.0, 	0.375 },
+				{ 1.0, 	1.0, 	0.4375 },
+				{ 1.0, 	1.0, 	0.5 },
+				{ 1.0, 	1.0, 	0.5625 },
+				{ 1.0, 	1.0, 	0.625 },
+				{ 1.0, 	1.0, 	0.6875 },
+				{ 1.0, 	1.0, 	0.75 },
+				{ 1.0, 	1.0, 	0.8125 },
+				{ 1.0, 	1.0, 	0.875 },
+				{ 1.0, 	1.0, 	0.9375 },
+				{ 1.0, 	1.0, 	1.0 },
+			};
+	}
+//-------------------------------------------------------
+	public void setJet()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.5625 },
+				{ 0.0, 	0.0, 	0.625 },
+				{ 0.0, 	0.0, 	0.6875 },
+				{ 0.0, 	0.0, 	0.75 },
+				{ 0.0, 	0.0, 	0.8125 },
+				{ 0.0, 	0.0, 	0.875 },
+				{ 0.0, 	0.0, 	0.9375 },
+				{ 0.0, 	0.0, 	1.0 },
+				{ 0.0, 	0.0625, 	1.0 },
+				{ 0.0, 	0.125, 	1.0 },
+				{ 0.0, 	0.1875, 	1.0 },
+				{ 0.0, 	0.25, 	1.0 },
+				{ 0.0, 	0.3125, 	1.0 },
+				{ 0.0, 	0.375, 	1.0 },
+				{ 0.0, 	0.4375, 	1.0 },
+				{ 0.0, 	0.5, 	1.0 },
+				{ 0.0, 	0.5625, 	1.0 },
+				{ 0.0, 	0.625, 	1.0 },
+				{ 0.0, 	0.6875, 	1.0 },
+				{ 0.0, 	0.75, 	1.0 },
+				{ 0.0, 	0.8125, 	1.0 },
+				{ 0.0, 	0.875, 	1.0 },
+				{ 0.0, 	0.9375, 	1.0 },
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0625, 	1.0, 	0.9375 },
+				{ 0.125, 	1.0, 	0.875 },
+				{ 0.1875, 	1.0, 	0.8125 },
+				{ 0.25, 	1.0, 	0.75 },
+				{ 0.3125, 	1.0, 	0.6875 },
+				{ 0.375, 	1.0, 	0.625 },
+				{ 0.4375, 	1.0, 	0.5625 },
+				{ 0.5, 	1.0, 	0.5 },
+				{ 0.5625, 	1.0, 	0.4375 },
+				{ 0.625, 	1.0, 	0.375 },
+				{ 0.6875, 	1.0, 	0.3125 },
+				{ 0.75, 	1.0, 	0.25 },
+				{ 0.8125, 	1.0, 	0.1875 },
+				{ 0.875, 	1.0, 	0.125 },
+				{ 0.9375, 	1.0, 	0.0625 },
+				{ 1.0, 	1.0, 	0.0 },
+				{ 1.0, 	0.9375, 	0.0 },
+				{ 1.0, 	0.875, 	0.0 },
+				{ 1.0, 	0.8125, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.6875, 	0.0 },
+				{ 1.0, 	0.625, 	0.0 },
+				{ 1.0, 	0.5625, 	0.0 },
+				{ 1.0, 	0.5, 	0.0 },
+				{ 1.0, 	0.4375, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.3125, 	0.0 },
+				{ 1.0, 	0.25, 	0.0 },
+				{ 1.0, 	0.1875, 	0.0 },
+				{ 1.0, 	0.125, 	0.0 },
+				{ 1.0, 	0.0625, 	0.0 },
+				{ 1.0, 	0.0, 	0.0 },
+				{ 0.9375, 	0.0, 	0.0 },
+				{ 0.875, 	0.0, 	0.0 },
+				{ 0.8125, 	0.0, 	0.0 },
+				{ 0.75, 	0.0, 	0.0 },
+				{ 0.6875, 	0.0, 	0.0 },
+				{ 0.625, 	0.0, 	0.0 },
+				{ 0.5625, 	0.0, 	0.0 },
+				{ 0.5, 	0.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setPink()
+	{
+		d = new double[][]{
+				{ 0.1179, 	0.0, 	0.0 },
+				{ 0.1959, 	0.1029, 	0.1029 },
+				{ 0.2507, 	0.1455, 	0.1455 },
+				{ 0.2955, 	0.1782, 	0.1782 },
+				{ 0.3343, 	0.2057, 	0.2057 },
+				{ 0.3691, 	0.23, 	0.23 },
+				{ 0.4009, 	0.252, 	0.252 },
+				{ 0.4303, 	0.2722, 	0.2722 },
+				{ 0.4579, 	0.291, 	0.291 },
+				{ 0.4839, 	0.3086, 	0.3086 },
+				{ 0.5085, 	0.3253, 	0.3253 },
+				{ 0.532, 	0.3412, 	0.3412 },
+				{ 0.5546, 	0.3563, 	0.3563 },
+				{ 0.5762, 	0.3709, 	0.3709 },
+				{ 0.5971, 	0.3849, 	0.3849 },
+				{ 0.6172, 	0.3984, 	0.3984 },
+				{ 0.6367, 	0.4115, 	0.4115 },
+				{ 0.6557, 	0.4241, 	0.4241 },
+				{ 0.6741, 	0.4364, 	0.4364 },
+				{ 0.692, 	0.4484, 	0.4484 },
+				{ 0.7094, 	0.46, 	0.46 },
+				{ 0.7265, 	0.4714, 	0.4714 },
+				{ 0.7431, 	0.4825, 	0.4825 },
+				{ 0.7594, 	0.4933, 	0.4933 },
+				{ 0.7664, 	0.5175, 	0.504 },
+				{ 0.7732, 	0.5407, 	0.5143 },
+				{ 0.78, 	0.5628, 	0.5245 },
+				{ 0.7868, 	0.5842, 	0.5345 },
+				{ 0.7935, 	0.6048, 	0.5443 },
+				{ 0.8001, 	0.6247, 	0.554 },
+				{ 0.8067, 	0.644, 	0.5634 },
+				{ 0.8133, 	0.6627, 	0.5727 },
+				{ 0.8197, 	0.6809, 	0.5819 },
+				{ 0.8262, 	0.6986, 	0.5909 },
+				{ 0.8325, 	0.7159, 	0.5998 },
+				{ 0.8389, 	0.7328, 	0.6086 },
+				{ 0.8452, 	0.7493, 	0.6172 },
+				{ 0.8514, 	0.7655, 	0.6257 },
+				{ 0.8576, 	0.7813, 	0.6341 },
+				{ 0.8637, 	0.7968, 	0.6424 },
+				{ 0.8698, 	0.812, 	0.6506 },
+				{ 0.8759, 	0.827, 	0.6587 },
+				{ 0.8819, 	0.8416, 	0.6667 },
+				{ 0.8879, 	0.856, 	0.6746 },
+				{ 0.8938, 	0.8702, 	0.6824 },
+				{ 0.8997, 	0.8842, 	0.6901 },
+				{ 0.9056, 	0.8979, 	0.6977 },
+				{ 0.9114, 	0.9114, 	0.7052 },
+				{ 0.9172, 	0.9172, 	0.7272 },
+				{ 0.923, 	0.923, 	0.7485 },
+				{ 0.9287, 	0.9287, 	0.7692 },
+				{ 0.9344, 	0.9344, 	0.7893 },
+				{ 0.94, 	0.94, 	0.809 },
+				{ 0.9456, 	0.9456, 	0.8282 },
+				{ 0.9512, 	0.9512, 	0.8469 },
+				{ 0.9567, 	0.9567, 	0.8653 },
+				{ 0.9623, 	0.9623, 	0.8832 },
+				{ 0.9677, 	0.9677, 	0.9008 },
+				{ 0.9732, 	0.9732, 	0.9181 },
+				{ 0.9786, 	0.9786, 	0.9351 },
+				{ 0.984, 	0.984, 	0.9517 },
+				{ 0.9894, 	0.9894, 	0.9681 },
+				{ 0.9947, 	0.9947, 	0.9842 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setSpring()
+	{
+		d = new double[][]{
+				{ 1.0, 	0.0, 	1.0 },
+				{ 1.0, 	0.0159, 	0.9841 },
+				{ 1.0, 	0.0317, 	0.9683 },
+				{ 1.0, 	0.0476, 	0.9524 },
+				{ 1.0, 	0.0635, 	0.9365 },
+				{ 1.0, 	0.0794, 	0.9206 },
+				{ 1.0, 	0.0952, 	0.9048 },
+				{ 1.0, 	0.1111, 	0.8889 },
+				{ 1.0, 	0.127, 	0.873 },
+				{ 1.0, 	0.1429, 	0.8571 },
+				{ 1.0, 	0.1587, 	0.8413 },
+				{ 1.0, 	0.1746, 	0.8254 },
+				{ 1.0, 	0.1905, 	0.8095 },
+				{ 1.0, 	0.2063, 	0.7937 },
+				{ 1.0, 	0.2222, 	0.7778 },
+				{ 1.0, 	0.2381, 	0.7619 },
+				{ 1.0, 	0.254, 	0.746 },
+				{ 1.0, 	0.2698, 	0.7302 },
+				{ 1.0, 	0.2857, 	0.7143 },
+				{ 1.0, 	0.3016, 	0.6984 },
+				{ 1.0, 	0.3175, 	0.6825 },
+				{ 1.0, 	0.3333, 	0.6667 },
+				{ 1.0, 	0.3492, 	0.6508 },
+				{ 1.0, 	0.3651, 	0.6349 },
+				{ 1.0, 	0.381, 	0.619 },
+				{ 1.0, 	0.3968, 	0.6032 },
+				{ 1.0, 	0.4127, 	0.5873 },
+				{ 1.0, 	0.4286, 	0.5714 },
+				{ 1.0, 	0.4444, 	0.5556 },
+				{ 1.0, 	0.4603, 	0.5397 },
+				{ 1.0, 	0.4762, 	0.5238 },
+				{ 1.0, 	0.4921, 	0.5079 },
+				{ 1.0, 	0.5079, 	0.4921 },
+				{ 1.0, 	0.5238, 	0.4762 },
+				{ 1.0, 	0.5397, 	0.4603 },
+				{ 1.0, 	0.5556, 	0.4444 },
+				{ 1.0, 	0.5714, 	0.4286 },
+				{ 1.0, 	0.5873, 	0.4127 },
+				{ 1.0, 	0.6032, 	0.3968 },
+				{ 1.0, 	0.619, 	0.381 },
+				{ 1.0, 	0.6349, 	0.3651 },
+				{ 1.0, 	0.6508, 	0.3492 },
+				{ 1.0, 	0.6667, 	0.3333 },
+				{ 1.0, 	0.6825, 	0.3175 },
+				{ 1.0, 	0.6984, 	0.3016 },
+				{ 1.0, 	0.7143, 	0.2857 },
+				{ 1.0, 	0.7302, 	0.2698 },
+				{ 1.0, 	0.746, 	0.254 },
+				{ 1.0, 	0.7619, 	0.2381 },
+				{ 1.0, 	0.7778, 	0.2222 },
+				{ 1.0, 	0.7937, 	0.2063 },
+				{ 1.0, 	0.8095, 	0.1905 },
+				{ 1.0, 	0.8254, 	0.1746 },
+				{ 1.0, 	0.8413, 	0.1587 },
+				{ 1.0, 	0.8571, 	0.1429 },
+				{ 1.0, 	0.873, 	0.127 },
+				{ 1.0, 	0.8889, 	0.1111 },
+				{ 1.0, 	0.9048, 	0.0952 },
+				{ 1.0, 	0.9206, 	0.0794 },
+				{ 1.0, 	0.9365, 	0.0635 },
+				{ 1.0, 	0.9524, 	0.0476 },
+				{ 1.0, 	0.9683, 	0.0317 },
+				{ 1.0, 	0.9841, 	0.0159 },
+				{ 1.0, 	1.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setSummer()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.5, 	0.4 },
+				{ 0.0159, 	0.5079, 	0.4 },
+				{ 0.0317, 	0.5159, 	0.4 },
+				{ 0.0476, 	0.5238, 	0.4 },
+				{ 0.0635, 	0.5317, 	0.4 },
+				{ 0.0794, 	0.5397, 	0.4 },
+				{ 0.0952, 	0.5476, 	0.4 },
+				{ 0.1111, 	0.5556, 	0.4 },
+				{ 0.127, 	0.5635, 	0.4 },
+				{ 0.1429, 	0.5714, 	0.4 },
+				{ 0.1587, 	0.5794, 	0.4 },
+				{ 0.1746, 	0.5873, 	0.4 },
+				{ 0.1905, 	0.5952, 	0.4 },
+				{ 0.2063, 	0.6032, 	0.4 },
+				{ 0.2222, 	0.6111, 	0.4 },
+				{ 0.2381, 	0.619, 	0.4 },
+				{ 0.254, 	0.627, 	0.4 },
+				{ 0.2698, 	0.6349, 	0.4 },
+				{ 0.2857, 	0.6429, 	0.4 },
+				{ 0.3016, 	0.6508, 	0.4 },
+				{ 0.3175, 	0.6587, 	0.4 },
+				{ 0.3333, 	0.6667, 	0.4 },
+				{ 0.3492, 	0.6746, 	0.4 },
+				{ 0.3651, 	0.6825, 	0.4 },
+				{ 0.381, 	0.6905, 	0.4 },
+				{ 0.3968, 	0.6984, 	0.4 },
+				{ 0.4127, 	0.7063, 	0.4 },
+				{ 0.4286, 	0.7143, 	0.4 },
+				{ 0.4444, 	0.7222, 	0.4 },
+				{ 0.4603, 	0.7302, 	0.4 },
+				{ 0.4762, 	0.7381, 	0.4 },
+				{ 0.4921, 	0.746, 	0.4 },
+				{ 0.5079, 	0.754, 	0.4 },
+				{ 0.5238, 	0.7619, 	0.4 },
+				{ 0.5397, 	0.7698, 	0.4 },
+				{ 0.5556, 	0.7778, 	0.4 },
+				{ 0.5714, 	0.7857, 	0.4 },
+				{ 0.5873, 	0.7937, 	0.4 },
+				{ 0.6032, 	0.8016, 	0.4 },
+				{ 0.619, 	0.8095, 	0.4 },
+				{ 0.6349, 	0.8175, 	0.4 },
+				{ 0.6508, 	0.8254, 	0.4 },
+				{ 0.6667, 	0.8333, 	0.4 },
+				{ 0.6825, 	0.8413, 	0.4 },
+				{ 0.6984, 	0.8492, 	0.4 },
+				{ 0.7143, 	0.8571, 	0.4 },
+				{ 0.7302, 	0.8651, 	0.4 },
+				{ 0.746, 	0.873, 	0.4 },
+				{ 0.7619, 	0.881, 	0.4 },
+				{ 0.7778, 	0.8889, 	0.4 },
+				{ 0.7937, 	0.8968, 	0.4 },
+				{ 0.8095, 	0.9048, 	0.4 },
+				{ 0.8254, 	0.9127, 	0.4 },
+				{ 0.8413, 	0.9206, 	0.4 },
+				{ 0.8571, 	0.9286, 	0.4 },
+				{ 0.873, 	0.9365, 	0.4 },
+				{ 0.8889, 	0.9444, 	0.4 },
+				{ 0.9048, 	0.9524, 	0.4 },
+				{ 0.9206, 	0.9603, 	0.4 },
+				{ 0.9365, 	0.9683, 	0.4 },
+				{ 0.9524, 	0.9762, 	0.4 },
+				{ 0.9683, 	0.9841, 	0.4 },
+				{ 0.9841, 	0.9921, 	0.4 },
+				{ 1.0, 	1.0, 	0.4 }
+			};
+	}
+//-------------------------------------------------------
+	public void setWinter()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	1.0 },
+				{ 0.0, 	0.0159, 	0.9921 },
+				{ 0.0, 	0.0317, 	0.9841 },
+				{ 0.0, 	0.0476, 	0.9762 },
+				{ 0.0, 	0.0635, 	0.9683 },
+				{ 0.0, 	0.0794, 	0.9603 },
+				{ 0.0, 	0.0952, 	0.9524 },
+				{ 0.0, 	0.1111, 	0.9444 },
+				{ 0.0, 	0.127, 	0.9365 },
+				{ 0.0, 	0.1429, 	0.9286 },
+				{ 0.0, 	0.1587, 	0.9206 },
+				{ 0.0, 	0.1746, 	0.9127 },
+				{ 0.0, 	0.1905, 	0.9048 },
+				{ 0.0, 	0.2063, 	0.8968 },
+				{ 0.0, 	0.2222, 	0.8889 },
+				{ 0.0, 	0.2381, 	0.881 },
+				{ 0.0, 	0.254, 	0.873 },
+				{ 0.0, 	0.2698, 	0.8651 },
+				{ 0.0, 	0.2857, 	0.8571 },
+				{ 0.0, 	0.3016, 	0.8492 },
+				{ 0.0, 	0.3175, 	0.8413 },
+				{ 0.0, 	0.3333, 	0.8333 },
+				{ 0.0, 	0.3492, 	0.8254 },
+				{ 0.0, 	0.3651, 	0.8175 },
+				{ 0.0, 	0.381, 	0.8095 },
+				{ 0.0, 	0.3968, 	0.8016 },
+				{ 0.0, 	0.4127, 	0.7937 },
+				{ 0.0, 	0.4286, 	0.7857 },
+				{ 0.0, 	0.4444, 	0.7778 },
+				{ 0.0, 	0.4603, 	0.7698 },
+				{ 0.0, 	0.4762, 	0.7619 },
+				{ 0.0, 	0.4921, 	0.754 },
+				{ 0.0, 	0.5079, 	0.746 },
+				{ 0.0, 	0.5238, 	0.7381 },
+				{ 0.0, 	0.5397, 	0.7302 },
+				{ 0.0, 	0.5556, 	0.7222 },
+				{ 0.0, 	0.5714, 	0.7143 },
+				{ 0.0, 	0.5873, 	0.7063 },
+				{ 0.0, 	0.6032, 	0.6984 },
+				{ 0.0, 	0.619, 	0.6905 },
+				{ 0.0, 	0.6349, 	0.6825 },
+				{ 0.0, 	0.6508, 	0.6746 },
+				{ 0.0, 	0.6667, 	0.6667 },
+				{ 0.0, 	0.6825, 	0.6587 },
+				{ 0.0, 	0.6984, 	0.6508 },
+				{ 0.0, 	0.7143, 	0.6429 },
+				{ 0.0, 	0.7302, 	0.6349 },
+				{ 0.0, 	0.746, 	0.627 },
+				{ 0.0, 	0.7619, 	0.619 },
+				{ 0.0, 	0.7778, 	0.6111 },
+				{ 0.0, 	0.7937, 	0.6032 },
+				{ 0.0, 	0.8095, 	0.5952 },
+				{ 0.0, 	0.8254, 	0.5873 },
+				{ 0.0, 	0.8413, 	0.5794 },
+				{ 0.0, 	0.8571, 	0.5714 },
+				{ 0.0, 	0.873, 	0.5635 },
+				{ 0.0, 	0.8889, 	0.5556 },
+				{ 0.0, 	0.9048, 	0.5476 },
+				{ 0.0, 	0.9206, 	0.5397 },
+				{ 0.0, 	0.9365, 	0.5317 },
+				{ 0.0, 	0.9524, 	0.5238 },
+				{ 0.0, 	0.9683, 	0.5159 },
+				{ 0.0, 	0.9841, 	0.5079 },
+				{ 0.0, 	1.0, 	0.5 }
+			};
+	}	
+//-------------------------------------------------------
+	public void getRGB(double alpha, RGB rgb)
+	{
+
+		double d1,d2,d3;
+		double d1a,d2a,d3a;
+		double d1b,d2b,d3b;
+		int    index1,index2;
+
+		if (alpha==0){
+			d1=d[0][0];
+			d2=d[0][1];
+			d3=d[0][2];
+		}
+		else if (alpha==1){
+			d1=d[rowNumber-1][0];
+			d2=d[rowNumber-1][1];
+			d3=d[rowNumber-1][2];
+		}
+		else{
+			index1=(int)(alpha*(rowNumber-1));
+			index2=index1+1;
+			
+			d1a=d[index1][0];
+			d2a=d[index1][1];
+			d3a=d[index1][2];
+
+			d1b=d[index2][0];
+			d2b=d[index2][1];
+			d3b=d[index2][2];
+
+			d1=(d1a+d1b)/2;
+			d2=(d2a+d2b)/2;
+			d3=(d3a+d3b)/2;
+		}
+	
+		rgb.setR( (float) d1);
+		rgb.setG( (float) d2);
+		rgb.setB( (float) d3);
+	}	
+//-------------------------------------------------------
+} // end class colorMap
+/////////////////////////////////////////////////////////
+class RGB
+{
+	private float R,G,B;
+//-------------------------------------------------------
+	public void setR(float value) {this.R = value;}
+	public void setG(float value) {this.G = value;}
+	public void setB(float value) {this.B = value;}
+	public float getR() { return R;}
+	public float getG() { return G;}
+	public float getB() { return B;}
+//-------------------------------------------------------
+} //end class RGB	
+/////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSM.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSM.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSM.java	(revision 15389)
@@ -0,0 +1,352 @@
+package gov.nasa.jpl.issm;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.DoubleBuffer;
+import android.opengl.GLSurfaceView;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
+import android.view.animation.TranslateAnimation;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.PopupWindow;
+import android.widget.SeekBar;
+import android.widget.SeekBar.OnSeekBarChangeListener;
+import android.widget.TextView;
+import android.widget.Toast;
+import android.widget.ViewFlipper;
+
+
+public class ISSM extends Activity implements OnClickListener
+{
+	private DoubleBuffer buff;
+	private IssmJni issmNative;
+	private String mapName;
+	private String issmFolder;
+	private int size;
+    private GLSurfaceView mGLView;
+	private FrameLayout frame;
+	private ColorMap colorMap;
+	private int friction,temperature,sealevel;
+	private final int MINIMUM = 90;
+	private final int OFFSET = 10;
+	private ViewFlipper viewflipper;
+	private ProgressDialog dialog;
+	private ColorBar colorBar;
+	//------------------------------------------------------------------------------------------------    
+    @Override
+    public void onCreate(Bundle savedInstanceState)
+    {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main_issm);
+        this.initialize();         
+    }
+  //----------------------------------------------------------------------------------------------
+    private void initialize()
+    {
+    	Bundle map = getIntent().getExtras();
+        {
+        	if(map!= null)
+        	{
+        		issmFolder = map.getString("pathToFile");
+        	}
+        }
+    	friction = MINIMUM + OFFSET;
+    	temperature = MINIMUM + OFFSET;
+    	sealevel = MINIMUM + OFFSET;
+    	frame = (FrameLayout)findViewById(R.id.frame);
+    	viewflipper = (ViewFlipper) findViewById(R.id.flipper);
+        Button solve = (Button) super.findViewById(R.id.solve);
+        solve.setOnClickListener(this);
+        Button back = (Button) super.findViewById(R.id.back);
+        back.setOnClickListener(this);
+        Button setting = (Button) super.findViewById(R.id.setting);
+        setting.setOnClickListener(this);
+        ImageButton gl = (ImageButton) findViewById(R.id.greenland);		
+		gl.setOnClickListener(this);
+		ImageButton art = (ImageButton) findViewById(R.id.antarctica);
+		art.setOnClickListener(this);
+
+        //load up the ISSM library and create double buffer in java
+        //which later on will be pass for native for allocation.
+        issmNative = new IssmJni();
+        
+        //set default color map to be HSV
+        this.colorMap = new ColorMap();
+        //create colorBar
+        colorBar = new ColorBar(this);
+        colorBar.setColorMap(colorMap);
+    }
+//------------------------------------------------------------------------------------------------    
+    public void createModel()
+    {
+		String solution_type="DiagnosticSolution";
+    	String file = "";
+    	if( mapName.equals("greenland"))
+		{
+    		file = "greenland";
+		}
+    	else file = "antarctica";
+
+    	size = issmNative.createISSMModel(solution_type,issmFolder,file);
+    	buff = ByteBuffer.allocateDirect(size*12*8).order(ByteOrder.nativeOrder()).asDoubleBuffer();
+    }
+//------------------------------------------------------------------------------------------------  
+    public boolean onCreateOptionsMenu(Menu menu) 
+    {
+    	MenuInflater menuInflater = getMenuInflater();
+    	menuInflater.inflate(R.menu.issm_menu,menu);
+    	
+    	return true;
+    }
+//------------------------------------------------------------------------------------------------  
+    //Option Menu that allow user to choose color. 
+   public boolean onOptionsItemSelected(MenuItem item)
+    {
+    	switch (item.getItemId())
+        {
+	        case R.id.menu_about:          
+	            Toast.makeText(ISSM.this, "ISSM Application", Toast.LENGTH_SHORT).show();
+	            return true;
+	 	            
+	        case R.id.cl_autumn:
+	        	colorMap.setAutumn(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        
+	        case R.id.cl_bone:
+	        	colorMap.setBone(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        
+	        case R.id.cl_cool:
+	        	colorMap.setCool(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_copper:
+	        	colorMap.setCopper(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_gray:
+	        	colorMap.setGray(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        
+	        case R.id.cl_hot:
+	        	colorMap.setGray(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        
+	        case R.id.cl_hsv:
+	        	colorMap.setDefault(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_jet:
+	        	colorMap.setJet(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_pink:
+	        	colorMap.setPink(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_spring:
+	        	colorMap.setSpring(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_summer:	
+	        	colorMap.setSummer(); colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        	
+	        case R.id.cl_winter:
+	        	colorMap.setWinter();colorBar.setColorMap(colorMap);
+	        	drawFigure();
+	        	return true;
+	        default:
+	        	return super.onOptionsItemSelected(item);
+        }
+    	
+    }
+//---------------------------------------------------------------------------------   
+    public void onClick(View view) 
+	{
+    	switch(view.getId())
+    	{
+	    	case R.id.greenland:
+			{
+				mapName= "greenland";
+				viewflipper.setInAnimation(inFromRightAnimation());
+		        viewflipper.setOutAnimation(outToLeftAnimation());
+		        viewflipper.showNext();
+		        //create FemModel in native code and return the size of the model
+		        this.createModel();
+		        break;
+			}
+	    	case R.id.antarctica:
+			{
+				mapName= "antarctica";
+				viewflipper.setInAnimation(inFromRightAnimation());
+		        viewflipper.setOutAnimation(outToLeftAnimation());
+		        viewflipper.showNext();
+		        //create FemModel in native code and return the size of the model
+		        this.createModel();
+		        break;
+			}
+	    	case R.id.back:
+	    	{
+	    		 frame.removeView(mGLView);
+	    		 viewflipper.setInAnimation(inFromLeftAnimation());
+		         viewflipper.setOutAnimation(outToRightAnimation());
+		         viewflipper.showPrevious(); 
+		         break;
+	    	}
+    		case R.id.solve:
+    		{
+    			dialog = new ProgressDialog(view.getContext());
+    			dialog.setCancelable(true);
+    			dialog.setMessage("Loading View. Please Wait ...");
+    			dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+    			dialog.setProgress(0);
+    			dialog.setMax(100);
+    			System.out.println(friction);
+    			new CalculationTask().execute(friction);
+    			break;
+    		}
+    		case R.id.setting:
+    		{
+    			final SliderMenu sliders= new SliderMenu(this);
+    			final PopupWindow popupWindow = new PopupWindow( sliders, 400,400, true);
+    			popupWindow.showAtLocation(sliders, Gravity.CENTER, 0, 0);
+    			Button dismiss = (Button)sliders.findViewById(R.id.exitSetting);
+	            dismiss.setOnClickListener(new Button.OnClickListener()
+	            {
+	            	public void onClick(View v)
+	            	{
+	            		friction = sliders.getFric();
+	    	            temperature = sliders.getTemp();
+	    	            sealevel = sliders.getSea();
+	            		popupWindow.dismiss();
+	            		System.out.println("Friction = " + friction );
+	    	            System.out.println("Temp =" + temperature);
+	    	            System.out.println("SeaLevel" + sealevel);
+	            	}
+	            });
+    		}
+    	}
+	}
+//---------------------------------------------------------------------------------- 
+    public void drawFigure()
+    {
+    	frame.removeAllViews();
+    	mGLView = new MyGLSurfaceView(this, buff, size, colorMap);
+    	frame.addView(mGLView);
+    }
+//------------------------------------------------------------------------------------
+   //AsyncTask will allow to display while doing some task in the background
+   private class CalculationTask extends AsyncTask<Integer,Integer,Boolean>
+   {
+		@Override
+		protected Boolean doInBackground(Integer... target) 
+		{
+			Thread thread = new Thread()
+			{
+				public void run()
+				{
+					for(int i = 0; i <= 100; i+=5)
+					{
+						try {
+							Thread.sleep(300);
+						} catch (InterruptedException e) {
+							// TODO Auto-generated catch block
+							e.printStackTrace();
+						}
+						publishProgress(i);
+					}
+				}
+			};
+			thread.start();
+			issmNative.solveISSMModel(target[0],buff);
+			return true;
+		}
+		
+		protected void onPreExecute()
+		{
+			super.onPostExecute(null);
+			dialog.show();
+		}
+		protected void onProgressUpdate(Integer ... value)
+		{
+			super.onProgressUpdate();
+			dialog.setProgress(value[0]);
+		}
+		protected void onPostExecute(Boolean result)
+		{
+			super.onPostExecute(result);
+			dialog.dismiss();
+			if(result) drawFigure();
+		}
+	   
+   }
+//----------------------------------------------------------------------------------- 
+    
+    // Below are implementation for the animation between map selection and core computation
+
+	private Animation inFromRightAnimation() {
+
+	Animation inFromRight = new TranslateAnimation(
+	Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
+	Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	inFromRight.setDuration(500);
+	inFromRight.setInterpolator(new AccelerateInterpolator());
+	return inFromRight;
+	}
+	private Animation outToLeftAnimation() {
+	Animation outtoLeft = new TranslateAnimation(
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	outtoLeft.setDuration(500);
+	outtoLeft.setInterpolator(new AccelerateInterpolator());
+	return outtoLeft;
+	}
+
+	private Animation inFromLeftAnimation() {
+	Animation inFromLeft = new TranslateAnimation(
+	Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
+	Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	inFromLeft.setDuration(500);
+	inFromLeft.setInterpolator(new AccelerateInterpolator());
+	return inFromLeft;
+	}
+	private Animation outToRightAnimation() {
+	Animation outtoRight = new TranslateAnimation(
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  +1.0f,
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	outtoRight.setDuration(500);
+	outtoRight.setInterpolator(new AccelerateInterpolator());
+	return outtoRight;
+	}
+//-------------------------------------------------------------------------------------------	 
+}
+/////////////////////////////////////////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSMAPP.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSMAPP.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/ISSMAPP.java	(revision 15389)
@@ -0,0 +1,157 @@
+package gov.nasa.jpl.issm;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import android.app.Activity;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Environment;
+import android.util.Log;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.res.AssetManager;
+/////////////////////////////////////////////////////////////////////////// 
+public class ISSMAPP extends Activity
+{
+	MenuPage mp = new MenuPage();
+	private static final String PREFERENCE_FIRST_RUN = null;
+	private String extStorageDirectory;
+	private String issmFolder; 
+	SharedPreferences settings;
+//------------------------------------------------------------------------	
+	public void onCreate(Bundle icicle)
+	{
+		super.onCreate(icicle);
+		setContentView(R.layout.splashscreen);		
+	    settings = this.getSharedPreferences("MenuPage", 0);
+	    boolean firstrun = settings.getBoolean(PREFERENCE_FIRST_RUN, true);
+	    extStorageDirectory = Environment.getExternalStorageDirectory().toString();
+	    issmFolder = extStorageDirectory + "/ISSM/input_files/";
+
+	    new CopyDataTask().execute(firstrun);    
+	}
+//-------------------------------------------------------------------------------------------
+	//Start the splashscreen at beginning while transferring 
+	//data file from Assets folder to SDcard
+	private class CopyDataTask extends AsyncTask<Boolean,Void,Boolean>
+	   {
+			@Override
+			protected Boolean doInBackground(Boolean... target) 
+			{
+				StartAnimations();
+				try {
+					Thread.sleep(3000);
+				} catch (InterruptedException e1) {
+					// TODO Auto-generated catch block
+					e1.printStackTrace();
+				}
+				//not sure why, but target[0] can be true on install! more to be done.
+				//if(target[0] = false)
+				//{
+			        SharedPreferences.Editor e = settings.edit();
+			        e.putBoolean(PREFERENCE_FIRST_RUN, false);
+			        
+			        e.commit();
+			        // If not, run these methods:
+			        SetDirectory(issmFolder);
+				//}
+				return true;
+			}
+			protected void onPostExecute(Boolean result)
+			{
+				Intent i = new Intent(ISSMAPP.this, MenuPage.class);
+				i.putExtra("pathToFile", issmFolder);
+		        startActivity(i);
+			}
+	   }
+//-------------------------------------------------------------------------------------------
+	private void SetDirectory(String directory) 
+	{
+	    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
+	    {
+	    	System.out.println(issmFolder);
+	        File txtDirectory = new File(issmFolder);
+	        
+	        // Check and create directory in SDcard
+	        if(!txtDirectory.exists())
+	        {
+	        	txtDirectory.mkdirs();
+	        	System.out.println("making directory");
+	        }
+	        CopyAssets(); // Then run the method to copy the file.
+
+	    } 
+	    else if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) 
+	    {
+	    	Toast toast = Toast.makeText(this.getApplicationContext(), "Memory is not mounted to device", Toast.LENGTH_LONG);
+	    	toast.show();
+	    }
+
+	}
+//----------------------------------------------------------------------------
+	/**
+	 * -- Copy the file from the assets folder to the sdCard
+	 * ===========================================================
+	 **/
+		private void CopyAssets() 
+		{
+		    AssetManager assetManager = getAssets();
+		    String[] files = null;
+		    try {
+		        files = assetManager.list("Map");
+		    } catch (IOException e) {
+		        Log.e("tag", e.getMessage());
+		    }
+		    for (int i = 0; i < files.length; i++) {
+		        InputStream in = null;
+		        OutputStream out = null;
+		        try {
+		            in = assetManager.open("Map/"+files[i]);
+		            out = new FileOutputStream(issmFolder + files[i]);
+		            copyFile(in, out);
+		            in.close();
+		            in = null;
+		            out.flush();
+		            out.close();
+		            out = null;
+		        } catch (Exception e) {
+		            Log.e("tag", e.getMessage());
+		        }
+		    }
+		    System.out.println("Done");
+		}
+//----------------------------------------------------------------------------
+		private void copyFile(InputStream in, OutputStream out) throws IOException 
+		{
+		    byte[] buffer = new byte[1024];
+		    int read;
+		    while ((read = in.read(buffer)) != -1) {
+		        out.write(buffer, 0, read);
+		    }
+		}
+//----------------------------------------------------------------------------
+		 private void StartAnimations() 
+		 {
+		        Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
+		        anim.reset();
+		        LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay);
+		        l.clearAnimation();
+		        l.startAnimation(anim);
+		 
+		        anim = AnimationUtils.loadAnimation(this, R.anim.translate);
+		        anim.reset();
+		        ImageView iv = (ImageView) findViewById(R.id.logo);
+		        iv.clearAnimation();
+		        iv.startAnimation(anim);
+		    }
+//-------------------------------------------------------------------------------		 
+}
+////////////////////////////////////////////////////////////////////////////////// 
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/IssmJni.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/IssmJni.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/IssmJni.java	(revision 15389)
@@ -0,0 +1,12 @@
+package gov.nasa.jpl.issm;
+import java.nio.DoubleBuffer;
+
+class IssmJni
+{
+	public native void solveISSMModel(double alpha, DoubleBuffer buff);
+	public native int createISSMModel(String solution_type, String absfile, String relfile);
+	static 
+	{
+        System.loadLibrary("IssmJni");
+    }
+}
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MenuPage.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MenuPage.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MenuPage.java	(revision 15389)
@@ -0,0 +1,86 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.Gravity;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.PopupWindow;
+import android.content.Intent;
+/////////////////////////////////////////////////////////////////////////// 
+public class MenuPage extends Activity
+{
+	ISSM issm = new ISSM();
+	private String issmFolder; 
+//------------------------------------------------------------------------	
+	public void onCreate(Bundle icicle)
+	{
+		super.onCreate(icicle);
+		setContentView(R.layout.menupage);		
+		Bundle map = getIntent().getExtras();
+        {
+        	if(map!= null)
+        	{
+        		issmFolder = map.getString("pathToFile");
+        	}
+        }
+        //start the core implementation of ISSM
+	    ImageButton start = (ImageButton) findViewById(R.id.start);		
+		start.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				Intent i = new Intent(MenuPage.this, ISSM.class);
+				i.putExtra("pathToFile", issmFolder);
+		        startActivity(i);
+			}
+		});
+		// navigate to youtube video
+		ImageButton video = (ImageButton) findViewById(R.id.video);		
+		video.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				Intent i = new Intent(MenuPage.this, VideoActivity.class);
+		        startActivity(i);;
+			}
+		});
+		// pop up a text box that contains information about ISSM
+		final ImageButton intro = (ImageButton) findViewById(R.id.intro);	
+		intro.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v)
+			{
+				LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);  
+				View popupView = layoutInflater.inflate(R.layout.popuptext, null);  
+				final PopupWindow popupWindow = new PopupWindow( popupView, 400,600, true);
+				popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
+				Button dismiss = (Button)popupView.findViewById(R.id.dismiss);
+	            dismiss.setOnClickListener(new Button.OnClickListener()
+	            {
+	            	public void onClick(View v)
+	            	{
+	            		popupWindow.dismiss();
+	            	}
+	            });
+			}
+		});
+		//navigate to website
+		ImageButton visitus = (ImageButton) findViewById(R.id.visitus);		
+		visitus.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				String url = "http://issm.jpl.nasa.gov/";
+				Intent i = new Intent(Intent.ACTION_VIEW);
+				i.setData(Uri.parse(url));
+		        startActivity(i);
+			}
+		});
+	}
+//-------------------------------------------------------------------------------------	
+}
+///////////////////////////////////////////////////////////////////////////////////////// 
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLRenderer.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLRenderer.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLRenderer.java	(revision 15389)
@@ -0,0 +1,350 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package gov.nasa.jpl.issm;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+
+public class MyGLRenderer implements GLSurfaceView.Renderer 
+{
+	public volatile float mAngle;
+	public volatile float mAngleX; /* NEW STUFF*/
+	public volatile float mAngleY;
+	
+	
+    private FloatBuffer[] triangleVert;
+	
+	private float[][] mScaleMatrix;  // scaling /* NEW STUFF*/
+	private float[][] mRotXMatrix;	 // rotation x 
+	private float[][] mRotYMatrix;	 // rotation x
+
+	/**
+	 * Store the model matrix. This matrix is used to move models from object space (where each model can be thought
+	 * of being located at the center of the universe) to world space.
+	 */
+	private float[][] mModelMatrix;
+	
+	/**
+	 * Store the view matrix. This can be thought of as our camera. This matrix transforms world space to eye space;
+	 * it positions things relative to our eye.
+	 */
+	private float[][] mViewMatrix;
+
+	/** Store the projection matrix. This is used to project the scene onto a 2D viewport. */
+	private float[][] mProjectionMatrix;
+
+	/** Allocate storage for the final combined matrix. This will be passed into the shader program. */
+	private float[][] mMVPMatrix;
+
+	/** This will be used to pass in the transformation matrix. */
+	private int mMatrixHandle;
+	
+    private float[][] triangleData2DArr;
+    
+    private int mPositionHandle;
+    
+    private int mColorHandle;
+    
+	/** How many bytes per float. */
+    private final int mBytesPerFloat = 4;
+
+    /** How many elements per vertex. */
+    private final int mStrideBytes = 7 * mBytesPerFloat;
+
+    /** Offset of the position data. */
+    private final int mPositionOffset = 0;
+
+    /** Size of the position data in elements. */
+    private final int mPositionDataSize = 3;
+
+    /** Offset of the color data. */
+    private final int mColorOffset = 3;
+
+    /** Size of the color data in elements. */
+    private final int mColorDataSize = 4;	
+
+	// scaling /* NEW STUFF*/
+	float scaleX = 1.0f;
+	float scaleY = 1.0f;
+	float scaleZ = 1.0f;
+
+	public float eyeX;
+	public float eyeY;
+	public float eyeZ;
+	
+    public MyGLRenderer(float[][] vertices)
+    {	
+    	triangleData2DArr = new float[vertices.length][21];
+ 
+    	triangleVert = new FloatBuffer[vertices.length];
+    	mScaleMatrix  = new float[triangleVert.length][16];  // scaling  /* NEW STUFF*/
+    	mRotXMatrix  = new float[triangleVert.length][16];	 // rotation x
+    	mRotYMatrix  = new float[triangleVert.length][16];	 // rotation x
+    	
+    	for (int i = 0; i < vertices.length; i++)
+    	{
+    		for (int j = 0; j < 21; j++)
+    			triangleData2DArr[i][j] = vertices[i][j]; 
+    	}
+	    
+	    // initialize vertex byte buffer for shape coordinates
+    	for (int i = 0; i < vertices.length; i++)
+    	{
+    		triangleVert[i] = ByteBuffer.allocateDirect(triangleData2DArr[i].length * mBytesPerFloat)
+    													.order(ByteOrder.nativeOrder()).asFloatBuffer();
+    		triangleVert[i].put(triangleData2DArr[i]).position(0);
+    	}
+    }
+    
+	public void changeScale(float scale) /* NEW STUFF*/
+	{
+		if (scaleX * scale > 3.0f) return;
+		  scaleX *= scale; scaleY *= scale; scaleZ *= scale;
+		
+		//scaleX += scale;scaleY += scale;scaleZ += scale;
+		//scaleX = scale;scaleY = scale;scaleZ = scale;
+		//scaleX /= 100;scaleY /= 100;scaleZ /= 100;
+	}
+
+	public void defaultScale() 
+	{
+		scaleX = 1f;
+		scaleY = 1f;
+		scaleZ = 1f;
+	}
+	
+    public void onSurfaceCreated(GL10 unused, EGLConfig config) 
+    {
+        // Set the background frame color
+        GLES20.glClearColor(0.2f, 0.4f, 1.0f, 1.0f);
+        
+		// Position the eye behind the origin.
+		eyeX = 0.0f;
+		eyeY = 0.0f;
+		eyeZ = 1.5f;
+
+		// We are looking toward the distance
+		final float lookX = 0.0f;
+		final float lookY = 0.0f;
+		final float lookZ = -5.0f;
+
+		// Set our up vector. This is where our head would be pointing were we holding the camera.
+		final float upX = 0.0f;
+		final float upY = 1.0f;
+		final float upZ = 0.0f;
+
+		// Set the view matrix. This matrix can be said to represent the camera position.
+		// NOTE: In OpenGL 1, a ModelView matrix is used, which is a combination of a model and
+		// view matrix. In OpenGL 2, we can keep track of these matrices separately if we choose.
+		mViewMatrix = new float[triangleVert.length][16];
+		
+		
+		for (int i = 0; i < triangleVert.length; i++)
+			Matrix.setLookAtM(mViewMatrix[i], 0, eyeX, eyeY, eyeZ, lookX, lookY, lookZ, upX, upY, upZ);
+			//Matrix.setLookAtM(mVMatrix[i], 0, 0, 0, -5.0f, 0.0f, 0f, 0f, 0f, 1.0f, 0.0f);
+        
+		final String vertexShader =
+				"uniform mat4 u_MVPMatrix;      \n"		// A constant representing the combined model/view/projection matrix.
+			  + "attribute vec4 a_Position;     \n"		// Per-vertex position information we will pass in.
+			  + "attribute vec4 a_Color;        \n"		// Per-vertex color information we will pass in.			  
+			  + "varying vec4 v_Color;          \n"		// This will be passed into the fragment shader.
+			  + "void main()                    \n"		// The entry point for our vertex shader.
+			  + "{                              \n"
+			  + "   v_Color = a_Color;          \n"		// Pass the color through to the fragment shader. 
+			  
+			  											// It will be interpolated across the triangle.
+			  + "   gl_Position = u_MVPMatrix   \n" 	// gl_Position is a special variable used to store the final position.
+			  + "               * a_Position;   \n"     // Multiply the vertex by the matrix to get the final point in 			                                            			 
+			  + "}                              \n";    // normalized screen coordinates.
+
+			final String fragmentShader =
+				"precision mediump float;       \n"		// Set the default precision to medium. We don't need as high of a											// precision in the fragment shader.				
+			  + "varying vec4 v_Color;          \n"		// This is the color from the vertex shader interpolated across the 
+			  											// triangle per fragment.			  
+			  + "void main()                    \n"		// The entry point for our fragment shader.
+			  + "{                              \n"
+			  + "   gl_FragColor = v_Color;     \n"		// Pass the color directly through the pipeline.		  
+			  + "}                              \n";												
+
+    	   
+        int vertexShaderHandle = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);
+		// Pass in the shader source.
+		GLES20.glShaderSource(vertexShaderHandle, vertexShader);
+
+		// Compile the shader.
+		GLES20.glCompileShader(vertexShaderHandle);
+
+		// Get the compilation status.
+		final int[] compileStatus1 = new int[1];
+		GLES20.glGetShaderiv(vertexShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus1, 0);
+
+		// If the compilation failed, delete the shader.
+		if (compileStatus1[0] == 0) 
+		{				
+			GLES20.glDeleteShader(vertexShaderHandle);
+			vertexShaderHandle = 0;
+		}
+		
+         
+    	int fragmentShaderHandle = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
+		// Pass in the shader source.
+		GLES20.glShaderSource(fragmentShaderHandle, fragmentShader);
+
+		// Compile the shader.
+		GLES20.glCompileShader(fragmentShaderHandle);
+
+		// Get the compilation status.
+		final int[] compileStatus2 = new int[1];
+		GLES20.glGetShaderiv(fragmentShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus2, 0);
+
+		// If the compilation failed, delete the shader.
+		if (compileStatus2[0] == 0) 
+		{				
+			GLES20.glDeleteShader(fragmentShaderHandle);
+			fragmentShaderHandle = 0;
+		}
+
+        
+        int mProgram = GLES20.glCreateProgram();
+		// Bind the vertex shader to the program.
+		GLES20.glAttachShader(mProgram, vertexShaderHandle);			
+
+		// Bind the fragment shader to the program.
+		GLES20.glAttachShader(mProgram, fragmentShaderHandle);
+
+		// Bind attributes
+		GLES20.glBindAttribLocation(mProgram, 0, "a_Position");
+		GLES20.glBindAttribLocation(mProgram, 1, "a_Color");
+		
+		// Link the two shaders together into a program.
+		GLES20.glLinkProgram(mProgram);
+
+		// Get the link status.
+		final int[] linkStatus = new int[1];
+		GLES20.glGetProgramiv(mProgram, GLES20.GL_LINK_STATUS, linkStatus, 0);
+
+		// If the link failed, delete the program.
+		if (linkStatus[0] == 0) 
+		{				
+			GLES20.glDeleteProgram(mProgram);
+			mProgram = 0;
+		}
+		
+		for (int i = 0; i < triangleVert.length; i++)
+		{
+			mMatrixHandle = GLES20.glGetUniformLocation(mProgram, "u_MVPMatrix");       
+	        mPositionHandle = GLES20.glGetAttribLocation(mProgram, "a_Position");
+	        mColorHandle = GLES20.glGetAttribLocation(mProgram, "a_Color");
+		}
+        
+        // Add program to OpenGL environment
+        GLES20.glUseProgram(mProgram);
+    }
+    public void onSurfaceChanged(GL10 unused, int width, int height) 
+    {
+        // Adjust the viewport based on geometry changes,
+        // such as screen rotation
+        GLES20.glViewport(0, 0, width, height);
+        
+		// Create a new perspective projection matrix. The height will stay the same
+		// while the width will vary as per aspect ratio.
+		final float ratio = (float) width / height;
+		
+		mProjectionMatrix = new float[triangleVert.length][16];
+		for (int i = 0; i < triangleVert.length; i++)
+			Matrix.frustumM(mProjectionMatrix[i], 0, -ratio, ratio, -1, 1, 1f, 5);
+			
+    }
+    
+    public void onDrawFrame(GL10 glUnused) 
+    {
+    	// Draw background color
+    	GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+    	
+    	mModelMatrix = new float[triangleVert.length][16];
+        // Draw the triangle facing straight on.
+    	for (int i = 0; i < triangleVert.length; i++)
+    	{
+    		//Matrix.setIdentityM(mModelMatrix[i], 0); /* NEW STUFF*/
+    		Matrix.setIdentityM(mScaleMatrix[i], 0);
+    		Matrix.scaleM(mScaleMatrix[i], 0, scaleX, scaleY, scaleZ);
+    		
+    		// Rotation along x
+    		Matrix.setRotateM(mRotXMatrix[i], 0, this.mAngleY, -1.0f, 0.0f, 0.0f);
+    		Matrix.setRotateM(mRotYMatrix[i], 0, this.mAngleX, 0.0f, 1.0f, 0.0f); /* NEW STUFF*/
+    		
+    		Matrix.setLookAtM(mViewMatrix[i], 0, eyeX, eyeY, eyeZ, 0.0f, 0.0f, -5.0f, 0.0f, 1.0f, 0.0f); 
+    	
+    	}
+    		
+    	mMVPMatrix = new float[triangleVert.length][16];
+    	draw(triangleVert); 
+
+    }
+
+    private void draw(final FloatBuffer[] aTriangleBuffer)
+    {
+    	for (int i = 0; i < aTriangleBuffer.length; i++)
+    	{
+	        // Pass in the position information
+	        aTriangleBuffer[i].position(mPositionOffset);
+	        GLES20.glVertexAttribPointer(mPositionHandle, mPositionDataSize, GLES20.GL_FLOAT, false,
+	                				     mStrideBytes, aTriangleBuffer[i]);
+	        
+	        GLES20.glEnableVertexAttribArray(mPositionHandle);
+	     
+	        
+	        // Pass in the color information
+	        aTriangleBuffer[i].position(mColorOffset);
+	        GLES20.glVertexAttribPointer(mColorHandle, mColorDataSize, GLES20.GL_FLOAT, false,
+	                					 mStrideBytes, aTriangleBuffer[i]);
+	        
+	        GLES20.glEnableVertexAttribArray(mColorHandle);
+	        
+	        Matrix.setRotateM(mRotXMatrix[i], 0, this.mAngleY, -1.0f, 0.0f, 0.0f); /* NEW STUFF*/
+    		Matrix.setRotateM(mRotYMatrix[i], 0, this.mAngleX, 0.0f, 1.0f, 0.0f);
+
+    		float tempMatrix[][] = new float[triangleVert.length][16]; /* NEW STUFF*/
+    		Matrix.multiplyMM(tempMatrix[i], 0, mRotYMatrix[i], 0, mRotXMatrix[i], 0);
+    		Matrix.multiplyMM(mModelMatrix[i], 0, mScaleMatrix[i], 0, tempMatrix[i], 0);
+
+			// This multiplies the view matrix by the model matrix, and stores the result in the MVP matrix
+	        // (which currently contains model * view).
+	        Matrix.multiplyMM(mMVPMatrix[i], 0, mViewMatrix[i], 0, mModelMatrix[i], 0);
+	        
+	        // This multiplies the modelview matrix by the projection matrix, and stores the result in the MVP matrix
+	        // (which now contains model * view * projection).
+	        Matrix.multiplyMM(mMVPMatrix[i], 0, mProjectionMatrix[i], 0, mMVPMatrix[i], 0);
+	        
+	        GLES20.glUniformMatrix4fv(mMatrixHandle, 1, false, mMVPMatrix[i], 0);   
+
+	        // Draw the triangle
+	        GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 3);
+	        
+	        // Disable vertex array
+	        GLES20.glDisableVertexAttribArray(mPositionHandle);
+    	}
+    }
+
+}
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLSurfaceView.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLSurfaceView.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/MyGLSurfaceView.java	(revision 15389)
@@ -0,0 +1,215 @@
+package gov.nasa.jpl.issm;
+
+import java.nio.DoubleBuffer;
+import java.util.Random;
+
+import android.content.Context;
+import android.opengl.GLSurfaceView;
+import android.util.FloatMath;
+import android.view.MotionEvent;
+
+
+class MyGLSurfaceView extends GLSurfaceView 
+{
+	private MyGLRenderer mRend;
+	private DoubleBuffer db;
+	private int size;
+	double vmax = 0, vmin=0;
+	final int firstVelocity = 9; 
+	ColorMap colorMap;
+	
+	// pinch to zoom
+	float oldDist = 100.0f;
+	float newDist;
+	
+	int mode = 0;
+    public MyGLSurfaceView(Context context, DoubleBuffer db, int size, ColorMap colorMap) 
+    {
+        super(context);
+        // Create an OpenGL ES 2.0 context.
+        setEGLContextClientVersion(2);
+        this.db = db;
+        this.size = size;
+        this.colorMap = colorMap;
+        vmin = db.get(firstVelocity);
+        findMinMaxVelocity(); 
+        intialize();
+    }
+    private void intialize()
+    {
+        final int MAX_VERTICES = 21;
+        float f[][] = new float[size][MAX_VERTICES];
+        //indexes prefer to velocity at each vertices of triangles.
+        double alpha1, alpha2, alpha3;
+		float  xmin,xmax,ymin,ymax;
+        final int XSCALE_FACTOR = 1;
+        final int YSCALE_FACTOR = 2;
+        RGB rgb = new RGB();
+
+		for (int i = 0; i < size; i++) {
+				f[i][0] = (float)db.get(12*i+0);
+				f[i][1] = (float)db.get(12*i+1);
+				f[i][2] = (float)db.get(12*i+2);
+				f[i][7] = (float)db.get(12*i+3);
+				f[i][8] = (float)db.get(12*i+4);
+				f[i][9] = (float)db.get(12*i+5);
+				f[i][14] = (float)db.get(12*i+6);
+				f[i][15] = (float)db.get(12*i+7);
+				f[i][16] = (float)db.get(12*i+8);
+				
+				f[i][6] = 1.0f;
+				f[i][13] = 1.0f;
+				f[i][20] = 1.0f;
+				
+				alpha1 = getAlphaColor(db.get(12*i+9));
+				alpha2 = getAlphaColor(db.get(12*i+10));
+				alpha3 = getAlphaColor(db.get(12*i+11));
+				
+				colorMap.getRGB(alpha1, rgb);
+				float r1 = rgb.getR();
+				float g1 = rgb.getG();
+				float b1 = rgb.getB();
+				
+				colorMap.getRGB(alpha2, rgb);
+				float r2 = rgb.getR();
+				float g2 = rgb.getG();
+				float b2 = rgb.getB();
+				
+				colorMap.getRGB(alpha3, rgb);
+				float r3 = rgb.getR();
+				float g3 = rgb.getG();
+				float b3 = rgb.getB();
+				
+				
+				f[i][3] = r1;
+				f[i][4] = g1;
+				f[i][5] = b1;
+				
+				f[i][10] = r2;
+				f[i][11] = g2;
+				f[i][12] = b2;
+				
+				f[i][17] = r3;
+				f[i][18] = g3;
+				f[i][19] = b3;
+
+		}
+
+	
+		xmin=0; ymin=0; xmax=0; ymax=0;
+
+		for (int i = 0; i < size; i++) {
+			if (f[i][0]<xmin) xmin=f[i][0];
+			if (f[i][0]>xmax) xmax=f[i][0];
+
+			if (f[i][1]<ymin) ymin=f[i][1];
+			if (f[i][1]>ymax) ymax=f[i][1];
+		}
+				
+		for (int i = 0; i < size; i++) {
+				f[i][0] =  2*(f[i][0]-xmin)/(xmax-xmin)-1;
+				f[i][1] =  2*(f[i][1]-ymin)/(ymax-ymin)-1;
+				f[i][7] =  2*(f[i][7]-xmin)/(xmax-xmin)-1;
+				f[i][8] =  2*(f[i][8]-ymin)/(ymax-ymin)-1;
+				f[i][14] =  2*(f[i][14]-xmin)/(xmax-xmin)-1;
+				f[i][15] =  2*(f[i][15]-ymin)/(ymax-ymin)-1;
+		}
+				
+    	mRend = new MyGLRenderer(f);
+    	// Set the Renderer for drawing on the GLSurfaceView
+        setRenderer(mRend);
+
+        // Render the view only when there is a change in the drawing data
+        setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
+    }
+    private void findMinMaxVelocity()
+    {
+    	for(int i = 0; i < size*12; i++)
+    	{
+    		if(i%12==9 || i%12==10 ||i%12==11 )
+    		{
+    			if (db.get(i) <  vmin) vmin = db.get(i);
+    			if (db.get(i) >= vmax) vmax = db.get(i);
+    		}
+    		else continue; 
+    	}
+    	
+    }  
+    private double getAlphaColor(double velocity)
+    {
+    	return (velocity-vmin)/(vmax-vmin);
+    }
+    
+    private final float TOUCH_SCALE_FACTOR = 180.0f / 320;
+    private float mPreviousX;
+    
+    private float mPreviousY;
+ // touch events
+ 	private final int NONE = 0;
+ 	private final int DRAG = 0;
+ 	private final int ZOOM = 0;
+    @Override
+    public boolean onTouchEvent(MotionEvent e) /* NEW STUFF*/
+	{
+		float x = e.getX();
+		float y = e.getY();
+		switch (e.getAction()) {
+			case MotionEvent.ACTION_DOWN:			// one touch: drag
+		      mode = DRAG;
+		      //mRend.eyeX = e.getX();
+		      //mRend.eyeY = e.getY;
+		      break;
+		      
+			case MotionEvent.ACTION_POINTER_DOWN:	// two touches: zoom
+				oldDist = spacing(e);
+				if (oldDist > 10.0f) 
+					mode = ZOOM; // zoom
+				break;
+				
+			case MotionEvent.ACTION_UP:		// no mode
+				mode = NONE;
+				oldDist = 100.0f;
+				break;
+				
+			case MotionEvent.ACTION_POINTER_UP:		// no mode
+				mode = NONE;
+				oldDist = 100.0f;
+				break;
+				
+			case MotionEvent.ACTION_MOVE:						// rotation
+				if (e.getPointerCount() > 1 && mode == ZOOM) 
+				{
+					newDist = spacing(e);
+					if (newDist > 10.0f) {
+						float scale = newDist/oldDist; // scale
+						
+						// scale in the renderer
+						mRend.changeScale(scale);
+						oldDist = newDist;
+					}
+				}
+				else if (mode == DRAG)
+				{
+					float dx = x - mPreviousX;
+					float dy = y - mPreviousY;
+					
+					mRend.mAngleX += dx * TOUCH_SCALE_FACTOR;
+					mRend.mAngleY += dy * TOUCH_SCALE_FACTOR;
+
+					requestRender();
+				}
+				break;
+		}
+		mPreviousX = x;
+		mPreviousY = y;
+		return true;
+	}
+	
+	private float spacing(MotionEvent event) /* NEW STUFF*/
+	{
+		float x = event.getX(0) - event.getX(1);
+		float y = event.getY(0) - event.getY(1);
+		return FloatMath.sqrt(x * x + y * y);
+	}
+}
+
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/SliderMenu.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/SliderMenu.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/SliderMenu.java	(revision 15389)
@@ -0,0 +1,95 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.Button;
+import android.widget.RelativeLayout;
+import android.widget.SeekBar;
+import android.widget.TextView;
+import android.widget.SeekBar.OnSeekBarChangeListener;
+
+public class SliderMenu extends RelativeLayout{
+
+	private SeekBar frictionBar;
+	private SeekBar tempBar;
+	private SeekBar seaLevelBar;
+	private TextView fric, temp, sealvl;
+	private int friction, temperature, sealevel;
+	final int OFFSET = 10;
+	final int MINIMUM = 90;
+	View view;
+	public SliderMenu(Context context) {
+		super(context);
+		LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+		if( mInflater != null)
+		{
+			view = mInflater.inflate(R.layout.settingsmenu, this, true);
+		}
+		initialize();
+	}
+	public void initialize()
+	{
+		frictionBar = (SeekBar) this.findViewById(R.id.frictionBar);
+		tempBar = (SeekBar) this.findViewById(R.id.tempBar);
+		seaLevelBar = (SeekBar) this.findViewById(R.id.sealvlBar);
+		fric = (TextView) this.findViewById(R.id.fric);
+    	temp  = (TextView) this.findViewById(R.id.temp);
+    	sealvl   = (TextView) this.findViewById(R.id.sealvl);
+    	friction = MINIMUM + OFFSET;
+    	temperature = MINIMUM + OFFSET;
+    	sealevel = MINIMUM + OFFSET;
+    	setListenner();
+	}
+	private void setListenner()
+	{
+		frictionBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+                		
+                        friction = progress + OFFSET;
+                        fric.setText("Friction: " + friction + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+        tempBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+	                	
+                        temperature = progress + OFFSET;
+                        temp.setText("Temperature: " + temperature + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+        seaLevelBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+	                	
+                        sealevel = progress + OFFSET;
+                        sealvl.setText("Sea Level: " + sealevel + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+	}
+	public int getFric() {return friction;}
+	public int getTemp() {return temperature;}
+	public int getSea()  {return sealevel;}
+}
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VerticalSeekBar.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VerticalSeekBar.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VerticalSeekBar.java	(revision 15389)
@@ -0,0 +1,60 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.SeekBar;
+
+public class VerticalSeekBar extends SeekBar {
+
+	private final int MAX_SIZE = 500;
+    public VerticalSeekBar(Context context) {
+        super(context);
+    }
+
+    public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public VerticalSeekBar(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(h, w, oldh, oldw);
+    }
+
+    @Override
+    protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(heightMeasureSpec, widthMeasureSpec);
+        setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
+    }
+
+    protected void onDraw(Canvas c) {
+    	c.rotate(-90);
+        c.translate(-getHeight(),0);
+        super.onDraw(c);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (!isEnabled()) {
+            return false;
+        }
+        int i = 0;
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+            case MotionEvent.ACTION_MOVE:
+            case MotionEvent.ACTION_UP:
+                i = getMax() - (int) (getMax() * event.getY() / getHeight());
+                setProgress(i);
+                onSizeChanged(getWidth(), getHeight(), 0, 0);
+                break;
+
+            case MotionEvent.ACTION_CANCEL:
+                break;
+        }
+        return true;
+    }
+}
Index: /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VideoActivity.java
===================================================================
--- /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VideoActivity.java	(revision 15389)
+++ /issm/mobile/android/ISSM/src/gov/nasa/jpl/issm/VideoActivity.java	(revision 15389)
@@ -0,0 +1,27 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.net.Uri;
+import android.os.Bundle;
+import android.widget.MediaController;
+import android.widget.VideoView;
+import android.app.Activity;
+import android.view.Menu;
+
+public class VideoActivity extends Activity {
+
+	String SrcPath = "rtsp://v8.cache8.c.youtube.com/CjYLENy73wIaLQkL_ysv0M5QKhMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYI-SyfPGoqqyUQw=/0/0/0/video.3gp";
+	
+	   /** Called when the activity is first created. */
+	   @Override
+	   public void onCreate(Bundle savedInstanceState) {
+	       super.onCreate(savedInstanceState);
+	       setContentView(R.layout.videopage);	    
+	       VideoView myVideoView = (VideoView)findViewById(R.id.videoview);
+	       myVideoView.setVideoURI(Uri.parse(SrcPath));
+	       myVideoView.setMediaController(new MediaController(this));
+	       myVideoView.requestFocus();
+	       myVideoView.start();
+	   }
+
+}
Index: /issm/mobile/android/ISSM_APP/.classpath
===================================================================
--- /issm/mobile/android/ISSM_APP/.classpath	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/.classpath	(revision 15389)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
+	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="gen"/>
+	<classpathentry kind="output" path="bin/classes"/>
+</classpath>
Index: /issm/mobile/android/ISSM_APP/.project
===================================================================
--- /issm/mobile/android/ISSM_APP/.project	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/.project	(revision 15389)
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>gov.nasa.jpl.issm.main</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.android.ide.eclipse.adt.ApkBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
Index: /issm/mobile/android/ISSM_APP/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- /issm/mobile/android/ISSM_APP/.settings/org.eclipse.jdt.core.prefs	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/.settings/org.eclipse.jdt.core.prefs	(revision 15389)
@@ -0,0 +1,4 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.source=1.6
Index: /issm/mobile/android/ISSM_APP/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/AndroidManifest.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/AndroidManifest.xml	(revision 15389)
@@ -0,0 +1,64 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="gov.nasa.jpl.issm"
+    android:versionCode="1"
+    android:versionName="1.0"
+    android:installLocation="preferExternal" >
+    <uses-sdk
+        android:minSdkVersion="10"
+        android:targetSdkVersion="15" />
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+	<uses-permission android:name="android.permission.INTERNET" /> 
+	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+	    
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity android:name="gov.nasa.jpl.issm.ISSMAPP" 
+            	  android:screenOrientation="portrait"
+            	  android:label="@string/title_activity_issm"
+            	  android:noHistory="true" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+				<category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            </activity>
+            <activity
+            android:name="gov.nasa.jpl.issm.MenuPage"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.VideoActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_video_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ZoomImageViewActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.AboutActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+         <activity
+            android:name="gov.nasa.jpl.issm.TeamActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSM"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.GalleryImage"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+       
+    </application>
+
+</manifest>
Index: /issm/mobile/android/ISSM_APP/Makefile.am
===================================================================
--- /issm/mobile/android/ISSM_APP/Makefile.am	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/Makefile.am	(revision 15389)
@@ -0,0 +1,1 @@
+EXTRA_DIST =  AndroidManifest.xml  assets gen jni obj project.properties src Makefile.am bin ic_launcher-web.png libs proguard-project.txt res
Index: /issm/mobile/android/ISSM_APP/assets/Map/antarctica.toolkits
===================================================================
--- /issm/mobile/android/ISSM_APP/assets/Map/antarctica.toolkits	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/assets/Map/antarctica.toolkits	(revision 15389)
@@ -0,0 +1,6 @@
+%Toolkits options file: antarctica.toolkits written from Matlab toolkits array
+
++DefaultAnalysis
+-toolkit issm
+-mat_type mpidense
+-vec_type mpi
Index: /issm/mobile/android/ISSM_APP/assets/Map/greenland.toolkits
===================================================================
--- /issm/mobile/android/ISSM_APP/assets/Map/greenland.toolkits	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/assets/Map/greenland.toolkits	(revision 15389)
@@ -0,0 +1,6 @@
+%Toolkits options file: greenland.toolkits written from Matlab toolkits array
+
++DefaultAnalysis
+-toolkit issm
+-mat_type mpidense
+-vec_type mpi
Index: /issm/mobile/android/ISSM_APP/assets/about.html
===================================================================
--- /issm/mobile/android/ISSM_APP/assets/about.html	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/assets/about.html	(revision 15389)
@@ -0,0 +1,11 @@
+<html>
+
+<h1>About Ice Sheet System Software</h1>
+ISSM is the result of a collaboration between the <b>Jet Propulsion Laboratory</b> and <b>University of California at Irvine</b>.<br><br> 
+Its purpose is to tackle the challenge of modeling the evolution of the polar ice caps in Greenland and Antarctica. <br>
+ISSM is funded by the NASA Cryosphere and MAP (Modeling Analysis and Prediction) programs, JPL R&amp;TD(Research, Technology and Development) and the National Science Foundation.<br><br> 
+Our main collaborators are:MSSMat Laboratory of cole Centrale Paris, Argonne National Laboratory and the Department of Geology of University of Buffalo, NY.<br>
+As synthesized in the last <b>Intergovernmental Panel on Climate Change</b> (IPCC) Assessment Report AR4,future changes in the Greenland and Antarctic ice sheet mass, particularly due to changes in ice flow,are a major source of uncertainty that could increase sea level rise projections.<br>
+To remedy this problem, large scale ice flow models are necessary that can accurately model the evolution of Greenland and Antarctica in a warming climate. <br>
+In order to achieve this goal,and improve projections of future sea level rise, ISSM relies on state of the art technologies,developed in synergy with the Research and Technology Development (R&amp;TD) at JPL.
+</html>
Index: /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml	(revision 15389)
@@ -0,0 +1,64 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="gov.nasa.jpl.issm"
+    android:versionCode="1"
+    android:versionName="1.0"
+    android:installLocation="preferExternal" >
+    <uses-sdk
+        android:minSdkVersion="10"
+        android:targetSdkVersion="15" />
+	<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+	<uses-permission android:name="android.permission.INTERNET" /> 
+	<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
+	    
+    <application
+        android:icon="@drawable/ic_launcher"
+        android:label="@string/app_name"
+        android:theme="@style/AppTheme" >
+        <activity android:name="gov.nasa.jpl.issm.ISSMAPP" 
+            	  android:screenOrientation="portrait"
+            	  android:label="@string/title_activity_issm"
+            	  android:noHistory="true" >
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+				<category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+            </activity>
+            <activity
+            android:name="gov.nasa.jpl.issm.MenuPage"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.VideoActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_video_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ZoomImageViewActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.AboutActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+         <activity
+            android:name="gov.nasa.jpl.issm.TeamActivity"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSM"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+        <activity
+            android:name="gov.nasa.jpl.issm.GalleryImage"
+            android:screenOrientation="portrait"
+            android:label="@string/title_activity_issm" >
+        </activity>
+       
+    </application>
+
+</manifest>
Index: /issm/mobile/android/ISSM_APP/proguard-project.txt
===================================================================
--- /issm/mobile/android/ISSM_APP/proguard-project.txt	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/proguard-project.txt	(revision 15389)
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
Index: /issm/mobile/android/ISSM_APP/project.properties
===================================================================
--- /issm/mobile/android/ISSM_APP/project.properties	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/project.properties	(revision 15389)
@@ -0,0 +1,14 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-15
Index: /issm/mobile/android/ISSM_APP/res/anim/alpha.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/alpha.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/anim/alpha.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<alpha
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromAlpha="0.0"
+    android:toAlpha="1.0"
+    android:duration="3000" />
Index: /issm/mobile/android/ISSM_APP/res/anim/fade_out.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/fade_out.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/anim/fade_out.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<alpha
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromAlpha="1.0"
+    android:toAlpha="0.0"
+    android:duration="2000" />
Index: /issm/mobile/android/ISSM_APP/res/anim/left_out.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/left_out.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/anim/left_out.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set
+    xmlns:android="http://schemas.android.com/apk/res/android">
+ 
+<translate
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromXDelta="0%"
+    android:toXDelta="-100%"
+    android:fromYDelta="0%"
+    android:toYDelta="0%"
+    android:duration="1500"
+    android:zAdjustment="top" />
+ 
+</set>
Index: /issm/mobile/android/ISSM_APP/res/anim/right_in.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/right_in.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/anim/right_in.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set
+    xmlns:android="http://schemas.android.com/apk/res/android">
+ 
+<translate
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromXDelta="100%"
+    android:toXDelta="0%"
+    android:fromYDelta="0%"
+    android:toYDelta="0%"
+    android:duration="2000"
+    android:zAdjustment="top" />
+ 
+</set>
Index: /issm/mobile/android/ISSM_APP/res/anim/translate.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/translate.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/anim/translate.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set
+    xmlns:android="http://schemas.android.com/apk/res/android">
+ 
+<translate
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:fromXDelta="0%"
+    android:toXDelta="0%"
+    android:fromYDelta="200%"
+    android:toYDelta="0%"
+    android:duration="3000"
+    android:zAdjustment="top" />
+ 
+</set>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/antarctica_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/antarctica_button.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/antarctica_button.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/antarctica_press"
+          android:state_pressed="true" />
+    <item android:drawable="@drawable/antarctica_1" />
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/custom_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/custom_button.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/custom_button.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/btn_press"
+          android:state_pressed="true" />
+    <item android:drawable="@drawable/btn_lightblue_glossy" />
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/greenland_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/greenland_button.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/greenland_button.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/greenland_press"
+          android:state_pressed="true" />
+    <item android:drawable="@drawable/greenland_1" />
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/image_border.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/image_border.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/image_border.xml	(revision 15389)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <item>
+        <shape android:shape="rectangle" >
+            <gradient
+                android:angle="90"
+                android:centerColor="#777777"
+                android:endColor="#777777"
+                android:startColor="#777777" />
+        </shape>
+    </item>
+    <item
+        android:bottom="3dp"
+        android:left="3dp"
+        android:right="3dp"
+        android:top="3dp">
+        <shape android:shape="rectangle" >
+            <solid android:color="#777777" />
+        </shape>
+    </item>
+
+</layer-list>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/selected_image_border.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/selected_image_border.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/selected_image_border.xml	(revision 15389)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <item>
+        <shape android:shape="rectangle" >
+            <gradient
+                android:angle="90"
+                android:centerColor="#000"
+                android:endColor="#000"
+                android:startColor="#000" />
+        </shape>
+    </item>
+    <item
+        android:bottom="3dp"
+        android:left="3dp"
+        android:right="3dp"
+        android:top="3dp">
+        <shape android:shape="rectangle" >
+            <solid android:color="#000" />
+        </shape>
+    </item>
+
+</layer-list>
Index: /issm/mobile/android/ISSM_APP/res/drawable-mdpi/snow_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable-mdpi/snow_button.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/drawable-mdpi/snow_button.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/snow_btn_press"
+          android:state_pressed="true" />
+    <item android:drawable="@drawable/snow_btn" />
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml	(revision 15389)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
+
+    <WebView android:id="@+id/aboutpage"
+            android:layout_height="fill_parent"
+            android:layout_width="fill_parent" />
+
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/backview.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/backview.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/backview.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<RelativeLayout android:id="@+id/Layoutback"
+	android:layout_width="fill_parent"
+	android:layout_height="fill_parent"
+	xmlns:android="http://schemas.android.com/apk/res/android">
+	<TextView
+		android:layout_centerHorizontal="true"
+		android:layout_centerVertical="true"
+		android:layout_width="wrap_content"
+		android:id="@+id/back_view"
+		android:layout_height="wrap_content"
+		android:typeface="serif"
+		android:textSize="20sp">
+	</TextView>
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/frontview.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/frontview.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/frontview.xml	(revision 15389)
@@ -0,0 +1,12 @@
+<RelativeLayout android:id="@+id/Layoutfront"
+	android:layout_width="fill_parent"
+	android:layout_height="fill_parent"
+	xmlns:android="http://schemas.android.com/apk/res/android">
+	<ImageView
+		android:layout_centerHorizontal="true"
+		android:layout_centerVertical="true"
+		android:layout_width="fill_parent"
+		android:id="@+id/front_view"
+		android:layout_height="fill_parent">
+	</ImageView>
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/gallery.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/gallery.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/gallery.xml	(revision 15389)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@layout/roundcorner"
+    android:orientation="vertical" >
+    
+    <FrameLayout
+		android:id="@+id/container"
+		android:layout_width="fill_parent"
+		android:layout_height="fill_parent"
+		android:layout_above="@+id/gallery_relative_layout"
+		android:layout_marginLeft="20dip"
+        android:layout_marginRight="20dip"
+        android:layout_marginTop="30dip">
+		<include android:id="@+id/front" layout="@layout/frontview" />
+		<include android:id="@+id/back" layout="@layout/backview" />
+	</FrameLayout>
+    <!-- <ImageView
+        android:id="@+id/selected_imageview"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent" 
+        android:layout_above="@+id/gallery_relative_layout"
+        android:layout_marginLeft="30dip"
+        android:layout_marginRight="30dip"
+        android:layout_marginTop="30dip" /> -->
+
+	<TextView
+            android:id="@+id/description"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:gravity="center_horizontal"
+            android:layout_below="@+id/container"
+            android:layout_marginTop="5dip"
+            android:textSize="13sp"
+            android:typeface="serif" />
+	
+    <RelativeLayout
+        android:id="@+id/gallery_relative_layout"
+        android:layout_width="fill_parent"
+        android:layout_height="130dip"
+        android:layout_alignParentBottom="true"
+        android:orientation="horizontal" >
+
+        <ImageView
+            android:id="@+id/left_arrow_imageview"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="15dip"
+            android:src="@drawable/arrow_left_disabled" />
+
+        <Gallery
+            android:id="@+id/gallery"
+            android:layout_width="0dip"
+            android:layout_height="130dip"
+            android:layout_marginLeft="20dip"
+            android:layout_marginRight="20dip"
+            android:layout_toLeftOf="@+id/right_arrow_imageview"
+            android:layout_toRightOf="@+id/left_arrow_imageview"
+            android:spacing="20dip" />
+
+        <ImageView
+            android:id="@+id/right_arrow_imageview"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="15dip"
+            android:src="@drawable/arrow_right_enabled" />
+
+    </RelativeLayout>
+
+    <ImageView
+        android:id="@+id/info_stage"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_alignRight="@+id/container"
+        android:src="@drawable/ic_action_info" />
+    
+    <ImageView
+        android:id="@+id/photo_stage"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_alignRight="@+id/container"
+        android:src="@drawable/ic_action_photo" />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/issmcore.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/issmcore.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/issmcore.xml	(revision 15389)
@@ -0,0 +1,72 @@
+<RelativeLayout 
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:id="@+id/relativeLay"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="horizontal"
+    android:background="@drawable/background" >
+  
+    <FrameLayout
+        android:id="@+id/frame"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/play"
+        android:layout_below="@+id/spinner"
+        android:layout_marginBottom="12dp" >
+    </FrameLayout>
+
+    <!-- <Button
+        android:id="@+id/solve"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_alignParentLeft="true"
+        android:layout_marginLeft="20dp"
+        android:layout_marginBottom="18dp"
+        android:background="@drawable/custom_button"
+        android:text="Solve" /> 
+
+    <Button
+        android:id="@+id/back"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentLeft="true"
+        android:layout_alignParentTop="true"
+        android:background="@drawable/back_button"/> -->
+    
+    <gov.nasa.jpl.issm.ColorBar
+        android:id="@+id/colorbar"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignTop="@+id/spinner" />
+    <Spinner
+        android:id="@+id/spinner"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginBottom="5dp"
+        android:layout_toRightOf="@+id/play"
+        android:background="@drawable/dropdown"
+        android:entries="@array/colormap_array"
+        android:prompt="@string/color_prompt" />
+
+    <Button
+        android:id="@+id/play"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginBottom="30dp"
+        android:background="@drawable/custom_button"
+        android:text="Run" />
+
+    <ImageView
+        android:id="@+id/defaultMap"
+        android:layout_width="250dp"
+        android:layout_height="250dp"
+        android:layout_centerHorizontal="true"
+        android:layout_centerVertical="true"
+        android:scaleType="fitXY"
+        android:src="@drawable/greenland_button" />
+   
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/issmmapselection.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/issmmapselection.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/issmmapselection.xml	(revision 15389)
@@ -0,0 +1,65 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/blank_background"
+    android:contentDescription="@string/Greenland" >
+
+    <View
+        android:id="@+id/view1"
+        android:layout_width="wrap_content"
+        android:layout_height="2dip"
+        android:layout_alignParentLeft="true"
+        android:layout_centerVertical="true"
+        android:background="#DDFFDD" />
+
+    <ImageButton
+        android:id="@+id/antarctica"
+        android:layout_width="150dip"
+        android:layout_height="150dip"
+        android:layout_alignLeft="@+id/greenland"
+        android:layout_below="@+id/view1"
+        android:layout_marginTop="34dp"
+        android:contentDescription="@string/Antarctica"
+        android:padding="12dp"
+        android:scaleType="fitXY"
+        android:src="@drawable/antarctica_button" />
+
+    <TextView
+        android:id="@+id/editText1"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_alignParentBottom="true"
+        android:layout_centerHorizontal="true"
+        android:ems="10"
+        android:gravity="center"
+        android:textStyle="bold"
+        android:text="@string/Antarctica" />
+
+    <TextView
+        android:id="@+id/EditText01"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_above="@+id/view1"
+        android:layout_alignLeft="@+id/editText1"
+        android:layout_centerHorizontal="true"
+        android:layout_centerInParent="true"
+        android:ems="10"
+        android:gravity="center"
+        android:textStyle="bold"
+        android:text="@string/Greenland" >
+
+        <requestFocus />
+    </TextView>
+
+    <ImageButton
+        android:id="@+id/greenland"
+        android:layout_width="150dip"
+        android:layout_height="150dip"
+        android:layout_centerHorizontal="true"
+        android:layout_margin="35dp"
+        android:contentDescription="@string/Greenland"
+        android:padding="12dp"
+        android:scaleType="fitXY"
+        android:src="@drawable/greenland_button" />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/main_issm.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/main_issm.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/main_issm.xml	(revision 15389)
@@ -0,0 +1,11 @@
+	<ViewFlipper
+	        xmlns:android="http://schemas.android.com/apk/res/android"
+			android:id="@+id/flipper"
+			android:layout_width="fill_parent"
+			android:layout_height="fill_parent"	>
+	<include android:id="@+id/first"  layout="@layout/issmmapselection" />
+	<include android:id="@+id/second"  layout="@layout/issmcore" />
+
+
+	</ViewFlipper>
+
Index: /issm/mobile/android/ISSM_APP/res/layout/menupage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/menupage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/menupage.xml	(revision 15389)
@@ -0,0 +1,55 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:background="@drawable/mainbackground" >
+        
+         <Button
+            android:id="@+id/intro"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="60dp"
+            android:layout_marginLeft="15dp"
+            android:background="@drawable/snow_button"
+            android:text="About" />
+
+        <Button
+            android:id="@+id/video"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@+id/intro"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="19dp"
+            android:background="@drawable/snow_button"
+            android:text="Video" />
+
+        <Button
+            android:id="@+id/start"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
+            android:layout_alignRight="@+id/intro"
+            android:layout_marginBottom="73dp"
+           	android:background="@drawable/snow_button"
+            android:text="Play" />
+
+        <Button
+            android:id="@+id/visitus"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentTop="true"
+            android:layout_centerHorizontal="true"
+            android:layout_marginTop="15dp"
+            android:background="@drawable/snow_button"
+            android:text="Team" />
+        
+        <Button
+            android:id="@+id/galleryimage"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@+id/start"
+            android:layout_alignParentRight="true"
+            android:layout_marginRight="19dp"
+            android:background="@drawable/snow_button"
+            android:text="Gallery" />
+
+    </RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/popuptext.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/popuptext.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/popuptext.xml	(revision 15389)
@@ -0,0 +1,39 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:orientation="vertical" 
+    android:background="@android:color/background_light">
+     <ScrollView android:layout_width="fill_parent"
+    	android:layout_height="0dip" 
+    	android:layout_weight="1">
+    	 <LinearLayout 
+		     android:layout_width="wrap_content"
+		     android:layout_height="wrap_content"
+		     android:orientation="vertical" 
+		     android:layout_margin="1dp">
+	    		<TextView
+		          android:background="#07000000"
+		          android:id="@+id/header"
+		          android:layout_width="wrap_content"
+				  android:layout_height="wrap_content"
+				  android:gravity="center"	
+				  android:textStyle="bold" 
+				  android:textSize="20sp"
+		          android:text="\tWelcome to the Ice Sheet System Model (ISSM)." >
+		      </TextView>
+		      <TextView
+		          android:background="#07000000"
+		          android:id="@+id/infotext"
+		          android:layout_width="wrap_content"
+				  android:layout_height="wrap_content"	 
+		          android:text="\tISSM is the result of a collaboration between the Jet Propulsion Laboratory and University of California at Irvine. Its purpose is to tackle the challenge of modeling the evolution of the polar ice caps in Greenland and Antarctica. \n\tISSM is funded by the NASA Cryosphere and MAP (Modeling Analysis and Prediction) programs, JPL R&amp;TD(Research, Technology and Development) and the National Science Foundation. Our main collaborators are:MSSMat Laboratory of École Centrale Paris, Argonne National Laboratory and the Department of Geology of University of Buffalo, NY.\n\tAs synthesized in the last Intergovernmental Panel on Climate Change (IPCC) Assessment Report AR4,future changes in the Greenland and Antarctic ice sheet mass, particularly due to changes in ice flow,are a major source of uncertainty that could increase sea level rise projections.\n\tTo remedy this problem, large scale ice flow models are necessary that can accurately model the evolution of Greenland and Antarctica in a warming climate. In order to achieve this goal,and improve projections of future sea level rise, ISSM relies on state of the art technologies,developed in synergy with the Research and Technology Development (R&amp;TD) at JPL." >
+			  </TextView>
+		</LinearLayout>
+	</ScrollView>
+		      <Button
+		          android:id="@+id/dismiss"
+		          android:layout_width="fill_parent"
+		          android:layout_height="wrap_content"
+		          android:text="Dismiss" >
+		      </Button>
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/progress_bar.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/progress_bar.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/progress_bar.xml	(revision 15389)
@@ -0,0 +1,9 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+		android:id="@+id/layout_root"
+		android:layout_width="match_parent"
+		android:layout_height="match_parent"> 
+	<ProgressBar
+		android:layout_width="200dp"
+		android:layout_height="200dp"
+		style="?android:attr/progressBarStyleHorizontal"  />
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/roundcorner.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/roundcorner.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/roundcorner.xml	(revision 15389)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <gradient
+        android:startColor="#80000000"
+        android:endColor="#80FFFFFF"
+        android:angle="45"/>
+    <padding android:left="7dp"
+        android:top="7dp"
+        android:right="7dp"
+        android:bottom="7dp" />
+    <corners android:radius="8dp" />
+</shape>
Index: /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress.xml	(revision 15389)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@android:id/background">
+        <nine-patch
+            xmlns:android="http://schemas.android.com/apk/res/android"
+            android:src="@drawable/seek_bg"
+            android:dither="true"
+         />
+    </item>
+    <item android:id="@android:id/secondaryProgress">
+        <clip>
+            <shape>
+                <gradient
+                    android:startColor="#80028ac8"
+                    android:centerColor="#80127fb1"
+                    android:centerY="0.75"
+                    android:endColor="#a004638f"
+                    android:angle="270"
+                />
+            </shape>
+        </clip>
+    </item>
+    <item
+        android:id="@android:id/progress"
+        android:drawable="@layout/seekbar_progress_bg"
+    />
+</layer-list>
Index: /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress_bg.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress_bg.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/seekbar_progress_bg.xml	(revision 15389)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+ <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <clip>
+        <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
+            android:src="@drawable/blue" 	
+            android:antialias="true"
+            android:dither="false"
+            android:filter="false"
+            android:gravity="left"
+        />
+        </clip>
+    </item>
+</layer-list>
Index: /issm/mobile/android/ISSM_APP/res/layout/settingsmenu.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/settingsmenu.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/settingsmenu.xml	(revision 15389)
@@ -0,0 +1,70 @@
+    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@layout/roundcorner">
+        
+        <TextView
+            android:id="@+id/fric"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Friction" />
+        
+        <SeekBar
+            android:id="@+id/frictionBar"
+            android:layout_width="fill_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/fric"
+            android:max="490"
+        	android:progress="100" 
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+        
+       <TextView
+            android:id="@+id/temp"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/frictionBar"
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Temperature" />
+        
+        <SeekBar
+            android:id="@+id/tempBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/temp" 
+            android:max="490"
+        	android:progress="100"
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+        
+        <TextView
+            android:id="@+id/sealvl"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/tempBar" 
+            android:typeface="serif"
+        	android:textColor="#000000"
+            android:text="Sea Level"/>
+        
+         <SeekBar
+            android:id="@+id/sealvlBar"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_below="@+id/sealvl"
+            android:max="490"
+        	android:progress="100" 
+        	android:progressDrawable="@layout/seekbar_progress"
+        	android:thumb="@drawable/thumb"/>
+
+         <Button
+             android:background="@drawable/btn_lightblue_glossy"
+             android:id="@+id/exitSetting"
+             android:layout_width="wrap_content"
+             android:layout_centerHorizontal="true"
+             android:layout_height="wrap_content"
+             android:layout_below="@+id/sealvlBar"
+             android:text="Done" /> 
+    </RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/splashscreen.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/splashscreen.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/splashscreen.xml	(revision 15389)
@@ -0,0 +1,16 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/splash"
+    android:layout_gravity="center"
+     android:id="@+id/lin_lay"
+    android:gravity="center"
+    android:orientation="vertical" >
+ 
+    <ImageView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:id="@+id/logo"
+        android:background="@drawable/issm_logo" />
+ 
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/teampage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/teampage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/teampage.xml	(revision 15389)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical" >
+    
+    <WebView android:id="@+id/teampage"
+            android:layout_height="fill_parent"
+            android:layout_width="fill_parent" />
+
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/videopage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/videopage.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/layout/videopage.xml	(revision 15389)
@@ -0,0 +1,18 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:layout_gravity="center"
+    android:gravity="center"
+    tools:context=".ISSM Video" 
+    android:background="#000000" >
+    
+
+        <VideoView
+            android:id="@+id/videoview"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+             />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/menu/activity_issm.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/menu/activity_issm.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/menu/activity_issm.xml	(revision 15389)
@@ -0,0 +1,6 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:id="@+id/menu_settings"
+        android:title="@string/menu_settings"
+        android:orderInCategory="100"
+        android:showAsAction="never" />
+</menu>
Index: /issm/mobile/android/ISSM_APP/res/menu/issm_menu.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/menu/issm_menu.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/menu/issm_menu.xml	(revision 15389)
@@ -0,0 +1,36 @@
+    <menu xmlns:android="http://schemas.android.com/apk/res/android">
+        <item android:id="@+id/menu_color"
+          android:icon="@drawable/ic_color"
+          android:title="Color" >
+          <menu>
+          	<item android:id="@+id/cl_hsv"
+          	      android:title="HSV" />
+          	<item android:id="@+id/cl_autumn"
+          	      android:title="Autumn" />
+          	<item android:id="@+id/cl_bone"
+          	      android:title="Bone" />                
+          	<item android:id="@+id/cl_cool"
+          	      android:title="Cool" />
+          	<item android:id="@+id/cl_copper"
+          	      android:title="Copper" />
+          	<item android:id="@+id/cl_gray"
+          	      android:title="Gray" />
+          	<item android:id="@+id/cl_hot"
+          	      android:title="Hot" />
+          	<item android:id="@+id/cl_jet"
+          	      android:title="Jet" />
+          	<item android:id="@+id/cl_pink"
+          	      android:title="Pink" />
+          	<item android:id="@+id/cl_spring"
+          	      android:title="Spring" />
+          	<item android:id="@+id/cl_winter"
+          	      android:title="Winter" />
+          	<item android:id="@+id/cl_summer"
+          	      android:title="Summer" />                                                      
+          </menu>
+     </item>   
+ 
+    	<item android:id="@+id/menu_about"
+          android:icon="@drawable/ic_about"
+          android:title="About" />
+    	</menu>
Index: /issm/mobile/android/ISSM_APP/res/raw/text.txt
===================================================================
--- /issm/mobile/android/ISSM_APP/res/raw/text.txt	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/raw/text.txt	(revision 15389)
@@ -0,0 +1,15 @@
+0:This is  image 0
+1:This is  image 1
+2:This is  image 2
+3:This is  image 3 
+4:This is  image 4
+5:..
+6:..
+7:..
+8:..
+9:..
+10:..
+11:..
+12:..
+13:..
+14:..
Index: /issm/mobile/android/ISSM_APP/res/values-large/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values-large/dimens.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values-large/dimens.xml	(revision 15389)
@@ -0,0 +1,7 @@
+<resources>
+
+    <dimen name="padding_small">8dp</dimen>
+    <dimen name="padding_medium">16dp</dimen>
+    <dimen name="padding_large">16dp</dimen>
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values-v11/styles.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values-v11/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values-v11/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Holo.Light" />
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values-v14/styles.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values-v14/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values-v14/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar" />
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/ProgressDialog.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/ProgressDialog.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values/ProgressDialog.xml	(revision 15389)
@@ -0,0 +1,13 @@
+  <resources>
+ 	<style name="ProgressBar">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowTitleStyle">@null</item>
+        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+        <item name="android:backgroundDimEnabled">false</item>
+        <item name="android:background">@android:color/transparent</item>
+    </style>
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/dimens.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values/dimens.xml	(revision 15389)
@@ -0,0 +1,7 @@
+<resources>
+
+    <dimen name="padding_small">8dp</dimen>
+    <dimen name="padding_medium">8dp</dimen>
+    <dimen name="padding_large">16dp</dimen>
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/strings.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/strings.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values/strings.xml	(revision 15389)
@@ -0,0 +1,28 @@
+<resources>
+
+    <string name="app_name">ISSM</string>
+    <string name="hello_world">Hello world!</string>
+    <string name="menu_settings">Settings</string>
+    <string name="title_video_issm">ISSM Sample Video</string>
+    <string name="about">ISSM is the result of a collaboration between the Jet Propulsion Laboratory and University of California at Irvine. Its purpose is to tackle the challenge of modeling the evolution of the polar ice caps in Greenland and Antarctica. \n\tISSM is funded by the NASA Cryosphere and MAP (Modeling Analysis and Prediction) programs, JPL R&amp;TD(Research, Technology and Development) and the National Science Foundation. Our main collaborators are:MSSMat Laboratory of École Centrale Paris, Argonne National Laboratory and the Department of Geology of University of Buffalo, NY.\n\tAs synthesized in the last Intergovernmental Panel on Climate Change (IPCC) Assessment Report AR4,future changes in the Greenland and Antarctic ice sheet mass, particularly due to changes in ice flow,are a major source of uncertainty that could increase sea level rise projections.\n\tTo remedy this problem, large scale ice flow models are necessary that can accurately model the evolution of Greenland and Antarctica in a warming climate. In order to achieve this goal,and improve projections of future sea level rise, ISSM relies on state of the art technologies,developed in synergy with the Research and Technology Development (R&amp;TD) at JPL.</string>
+    <string name="title_activity_issm">ISSM</string>
+    <string name="color_prompt">Pick a Color Map</string>
+ 
+    <string-array name="colormap_array">
+        <item>HSV</item>
+        <item>Autumn</item>
+        <item>Bone</item>
+        <item>Cool</item>
+        <item>Copper</item>
+        <item>Gray</item>
+        <item>Hot</item>
+        <item>Jet</item>
+        <item>Pink</item>
+        <item>Spring</item>
+        <item>Winter</item>
+        <item>Summer</item>
+    </string-array>
+        <string name="Greenland">Run Greenland Model</string>
+        <string name="Antarctica">Run Antarctica Model</string>
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/styles.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/styles.xml	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/res/values/styles.xml	(revision 15389)
@@ -0,0 +1,5 @@
+<resources>
+
+    <style name="AppTheme" parent="android:Theme.Light" />
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/AboutActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/AboutActivity.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/AboutActivity.java	(revision 15389)
@@ -0,0 +1,30 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.webkit.WebView;
+import gov.nasa.jpl.issm.MyWebViewClient;
+
+
+public class AboutActivity extends Activity {
+	
+	private WebView myWebView;
+	String SrcPath = "file:///android_asset/about.html";
+	
+	 /** Called when the activity is first created. */
+	   @Override
+	   public void onCreate(Bundle savedInstanceState) {
+	       //super.onCreate(savedInstanceState);
+	       //setContentView(R.layout.aboutpage);
+		   super.onCreate(savedInstanceState);
+			setContentView(R.layout.aboutpage);
+			
+			
+	 
+			myWebView = (WebView) findViewById(R.id.aboutpage);
+			myWebView.setWebViewClient(new MyWebViewClient());
+			//myWebView.getSettings().setJavaScriptEnabled(true);
+			myWebView.loadUrl(SrcPath);
+	   }
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java	(revision 15389)
@@ -0,0 +1,117 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.Paint;
+import android.util.AttributeSet;
+import android.view.View;
+/////////////////////////////////////////////////////////////
+public class ColorBar extends View
+{
+	Paint paint = new Paint();
+	Paint textpaint = new Paint();
+	//coordinate of the colorbar
+    private int width = 30;
+	private int start_x = 10;
+	private int start_y = 10;
+	//private int end_y = 0;
+	boolean touch;
+	final int MAX_SCALING =255;
+	double [][] colorBuffer;
+	private String vmax;
+	private String vmin;
+	private String vmid;
+	private boolean drawInformation = false;
+    public ColorBar(Context context, AttributeSet attrs)
+    {
+        super(context,attrs);
+        setWillNotDraw(false);
+        paint.setStrokeWidth(5);
+		textpaint.setColor(Color.WHITE);
+        textpaint.setTextSize(20);
+        touch = false;
+    }
+//----------------------------------------------------------------
+    //change the color map
+    public void setVelocity(double vmax, double vmin)
+    {
+    	this.vmin = vmin+"";
+    	String max = vmax+"";
+    	String mid = ((vmax+vmin)/2) + "";
+    	this.vmax = max.substring(0,3) + max.substring(max.length()-3, max.length());
+    	this.vmid = mid.substring(0,3) + mid.substring(mid.length()-3, mid.length());
+    	drawInformation = true;
+    }
+//-----------------------------------------------------------------    
+    //change the color map
+    public void setColorMap(ColorMap colorMap)
+    {
+    	this.colorBuffer = colorMap.getColorBuffer();
+    }
+//----------------------------------------------------------------        
+    @Override
+    public void onDraw(Canvas canvas) 
+    {
+    	int r,g,b;
+    	int y = start_y;
+    	for(int i = 63; i >= 0; i-- )
+    	{  	
+    		r =  Math.round((float)colorBuffer[i][0]*MAX_SCALING);
+    		g =  Math.round((float)colorBuffer[i][1]*MAX_SCALING);
+    		b =  Math.round((float)colorBuffer[i][2]*MAX_SCALING);
+    		paint.setColor(Color.argb(MAX_SCALING, r, g, b));
+    		canvas.drawLine(y, start_x,y, start_x+width, paint);
+    		
+    		if(drawInformation)
+    		{
+    			if(i == 63)  canvas.drawText(vmin,y, start_x+width+20, textpaint);
+    			if(i == 38) canvas.drawText(vmid,y, start_x+width+20, textpaint);
+    			if(i == 8)	canvas.drawText(vmax,y, start_x+width+20, textpaint);
+    			if(i == 0) canvas.drawText("V(m/yr)",y+10, start_x+width, textpaint);
+    		}
+    		y+=3;
+    	}
+    	//end_y = y;
+    }
+//----------------------------------------------------------------    
+    /*allow user to move color bar around
+    @Override
+    public boolean onTouchEvent (MotionEvent event)
+    {
+
+	      if (event.getAction() == MotionEvent.ACTION_DOWN) 
+	      {    
+	    	  int x = (int) event.getX();
+	    	  int y = (int) event.getY(); 
+	    	  if(x >= start_x && x <= start_x+width && y >= start_y && y <= end_y)
+	    		  touch = true;
+	      } 
+	      else if (event.getAction() == MotionEvent.ACTION_MOVE) 
+	      {
+	    	 if(touch)
+	    	 {
+	    		 start_x = (int) event.getX();
+	    		 start_y = (int) event.getY(); 
+	    	 }
+	    	 invalidate();
+	
+	      } 
+	      else if (event.getAction() == MotionEvent.ACTION_UP) 
+	      {
+	    	  touch = false;
+	      }
+	      return true;
+    }*/
+//----------------------------------------------------------------        
+}
+////////////////////////////////////////////////////////////////////////////
+class Velocity
+{
+	private double vmax;
+	private double vmin;
+	public void setVmax(double vmax) {this.vmax = vmax;}
+	public void setVmin(double vmin) {this.vmin = vmin;}
+	public double getVmax() {return vmax;}
+	public double getVmin() {return vmin;}
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMap.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMap.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMap.java	(revision 15389)
@@ -0,0 +1,932 @@
+package gov.nasa.jpl.issm;
+
+/////////////////////////////////////////////////////////
+class ColorMap
+{
+	private double[][] d;
+	final int rowNumber = 64;
+//-------------------------------------------------------
+	public ColorMap()
+	{
+		setDefault();
+	}
+//-------------------------------------------------------
+	public double[][] getColorBuffer()
+	{
+		return d;
+	}
+//--------------------------------------------------------
+	public void setColor(String color)
+	{
+		String cl = color.toLowerCase().trim();
+		if (cl.equals("hsv")) setDefault();
+		if (cl.equals("autumn")) setAutumn();
+		if (cl.equals("bone")) setBone();
+		if (cl.equals("cool")) setCool();
+		if (cl.equals("copper")) setCopper();
+		if (cl.equals("gray")) setGray();
+		if (cl.equals("hot")) setHot();
+		if (cl.equals("jet")) setJet();
+		if (cl.equals("pink")) setPink();
+		if (cl.equals("spring")) setSpring();
+		if (cl.equals("winter")) setWinter();
+		if (cl.equals("summer")) setSummer();
+	}
+//--------------------------------------------------------	
+	//set default color map => hsv {{{
+	public void setDefault()
+	{
+		d = new double[][]{	
+				{1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0938, 	0.0 },
+				{ 1.0, 	0.1875, 	0.0 },
+				{ 1.0, 	0.2813, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.4688, 	0.0 },
+				{ 1.0, 	0.5625, 	0.0 },
+				{ 1.0, 	0.6563, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.8438, 	0.0 },
+				{ 1.0, 	0.9375, 	0.0 },
+				{ 0.9688, 	1.0, 	0.0 },
+				{ 0.875, 	1.0, 	0.0 },
+				{ 0.7813, 	1.0, 	0.0 },
+				{ 0.6875, 	1.0, 	0.0 },
+				{ 0.5938, 	1.0, 	0.0 },
+				{ 0.5, 	1.0, 	0.0 },
+				{ 0.4063, 	1.0, 	0.0 },
+				{ 0.3125, 	1.0, 	0.0 },
+				{ 0.2188, 	1.0, 	0.0 },
+				{ 0.125, 	1.0, 	0.0 },
+				{ 0.0313, 	1.0, 	0.0 },
+				{ 0.0, 	1.0, 	0.0625 },
+				{ 0.0, 	1.0, 	0.1563 },
+				{ 0.0, 	1.0, 	0.25 },
+				{ 0.0, 	1.0, 	0.3438 },
+				{ 0.0, 	1.0, 	0.4375 },
+				{ 0.0, 	1.0, 	0.5313 },
+				{ 0.0, 	1.0, 	0.625 },
+				{ 0.0, 	1.0, 	0.7188 },
+				{ 0.0, 	1.0, 	0.8125 },
+				{ 0.0, 	1.0, 	0.9063 },
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0, 	0.9063, 	1.0 },
+				{ 0.0, 	0.8125, 	1.0 },
+				{ 0.0, 	0.7188, 	1.0 },
+				{ 0.0, 	0.625, 	1.0 },
+				{ 0.0, 	0.5313, 	1.0 },
+				{ 0.0, 	0.4375, 	1.0 },
+				{ 0.0, 	0.3438, 	1.0 },
+				{ 0.0, 	0.25, 	1.0 },
+				{ 0.0, 	0.1563, 	1.0 },
+				{ 0.0, 	0.0625, 	1.0 },
+				{ 0.0313, 	0.0, 	1.0 },
+				{ 0.125, 	0.0, 	1.0 },
+				{ 0.2188, 	0.0, 	1.0 },
+				{ 0.3125, 	0.0, 	1.0 },
+				{ 0.4063, 	0.0, 	1.0 },
+				{ 0.5, 	0.0, 	1.0 },
+				{ 0.5938, 	0.0, 	1.0 },
+				{ 0.6875, 	0.0, 	1.0 },
+				{ 0.7813, 	0.0, 	1.0 },
+				{ 0.875, 	0.0, 	1.0 },
+				{ 0.9688, 	0.0, 	1.0 },
+				{ 1.0, 	0.0, 	0.9375 },
+				{ 1.0, 	0.0, 	0.8438 },
+				{ 1.0, 	0.0, 	0.75 },
+				{ 1.0, 	0.0, 	0.6563 },
+				{ 1.0, 	0.0, 	0.5625 },
+				{ 1.0, 	0.0, 	0.4688 },
+				{ 1.0, 	0.0, 	0.375 },
+				{ 1.0, 	0.0, 	0.2813 },
+				{ 1.0, 	0.0, 	0.1875 },
+				{ 1.0, 	0.0, 	0.0938 }
+			};
+	} 
+	//}}}
+//-------------------------------------------------------
+	public void setAutumn()
+	{
+		d = new double[][]{
+				{ 1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0159, 	0.0 },
+				{ 1.0, 	0.0317, 	0.0 },
+				{ 1.0, 	0.0476, 	0.0 },
+				{ 1.0, 	0.0635, 	0.0 },
+				{ 1.0, 	0.0794, 	0.0 },
+				{ 1.0, 	0.0952, 	0.0 },
+				{ 1.0, 	0.1111, 	0.0 },
+				{ 1.0, 	0.127, 	0.0 },
+				{ 1.0, 	0.1429, 	0.0 },
+				{ 1.0, 	0.1587, 	0.0 },
+				{ 1.0, 	0.1746, 	0.0 },
+				{ 1.0, 	0.1905, 	0.0 },
+				{ 1.0, 	0.2063, 	0.0 },
+				{ 1.0, 	0.2222, 	0.0 },
+				{ 1.0, 	0.2381, 	0.0 },
+				{ 1.0, 	0.254, 	0.0 },
+				{ 1.0, 	0.2698, 	0.0 },
+				{ 1.0, 	0.2857, 	0.0 },
+				{ 1.0, 	0.3016, 	0.0 },
+				{ 1.0, 	0.3175, 	0.0 },
+				{ 1.0, 	0.3333, 	0.0 },
+				{ 1.0, 	0.3492, 	0.0 },
+				{ 1.0, 	0.3651, 	0.0 },
+				{ 1.0, 	0.381, 	0.0 },
+				{ 1.0, 	0.3968, 	0.0 },
+				{ 1.0, 	0.4127, 	0.0 },
+				{ 1.0, 	0.4286, 	0.0 },
+				{ 1.0, 	0.4444, 	0.0 },
+				{ 1.0, 	0.4603, 	0.0 },
+				{ 1.0, 	0.4762, 	0.0 },
+				{ 1.0, 	0.4921, 	0.0 },
+				{ 1.0, 	0.5079, 	0.0 },
+				{ 1.0, 	0.5238, 	0.0 },
+				{ 1.0, 	0.5397, 	0.0 },
+				{ 1.0, 	0.5556, 	0.0 },
+				{ 1.0, 	0.5714, 	0.0 },
+				{ 1.0, 	0.5873, 	0.0 },
+				{ 1.0, 	0.6032, 	0.0 },
+				{ 1.0, 	0.619, 	0.0 },
+				{ 1.0, 	0.6349, 	0.0 },
+				{ 1.0, 	0.6508, 	0.0 },
+				{ 1.0, 	0.6667, 	0.0 },
+				{ 1.0, 	0.6825, 	0.0 },
+				{ 1.0, 	0.6984, 	0.0 },
+				{ 1.0, 	0.7143, 	0.0 },
+				{ 1.0, 	0.7302, 	0.0 },
+				{ 1.0, 	0.746, 	0.0 },
+				{ 1.0, 	0.7619, 	0.0 },
+				{ 1.0, 	0.7778, 	0.0 },
+				{ 1.0, 	0.7937, 	0.0 },
+				{ 1.0, 	0.8095, 	0.0 },
+				{ 1.0, 	0.8254, 	0.0 },
+				{ 1.0, 	0.8413, 	0.0 },
+				{ 1.0, 	0.8571, 	0.0 },
+				{ 1.0, 	0.873, 	0.0 },
+				{ 1.0, 	0.8889, 	0.0 },
+				{ 1.0, 	0.9048, 	0.0 },
+				{ 1.0, 	0.9206, 	0.0 },
+				{ 1.0, 	0.9365, 	0.0 },
+				{ 1.0, 	0.9524, 	0.0 },
+				{ 1.0, 	0.9683, 	0.0 },
+				{ 1.0, 	0.9841, 	0.0 },
+				{ 1.0, 	1.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setBone()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0052 },
+				{ 0.0139, 	0.0139, 	0.0243 },
+				{ 0.0278, 	0.0278, 	0.0434 },
+				{ 0.0417, 	0.0417, 	0.0625 },
+				{ 0.0556, 	0.0556, 	0.0816 },
+				{ 0.0694, 	0.0694, 	0.1007 },
+				{ 0.0833, 	0.0833, 	0.1198 },
+				{ 0.0972, 	0.0972, 	0.1389 },
+				{ 0.1111, 	0.1111, 	0.158 },
+				{ 0.125, 	0.125, 	0.1771 },
+				{ 0.1389, 	0.1389, 	0.1962 },
+				{ 0.1528, 	0.1528, 	0.2153 },
+				{ 0.1667, 	0.1667, 	0.2344 },
+				{ 0.1806, 	0.1806, 	0.2535 },
+				{ 0.1944, 	0.1944, 	0.2726 },
+				{ 0.2083, 	0.2083, 	0.2917 },
+				{ 0.2222, 	0.2222, 	0.3108 },
+				{ 0.2361, 	0.2361, 	0.3299 },
+				{ 0.25, 	0.25, 	0.349 },
+				{ 0.2639, 	0.2639, 	0.3681 },
+				{ 0.2778, 	0.2778, 	0.3872 },
+				{ 0.2917, 	0.2917, 	0.4062 },
+				{ 0.3056, 	0.3056, 	0.4253 },
+				{ 0.3194, 	0.3194, 	0.4444 },
+				{ 0.3333, 	0.3385, 	0.4583 },
+				{ 0.3472, 	0.3576, 	0.4722 },
+				{ 0.3611, 	0.3767, 	0.4861 },
+				{ 0.375, 	0.3958, 	0.5 },
+				{ 0.3889, 	0.4149, 	0.5139 },
+				{ 0.4028, 	0.434, 	0.5278 },
+				{ 0.4167, 	0.4531, 	0.5417 },
+				{ 0.4306, 	0.4722, 	0.5556 },
+				{ 0.4444, 	0.4913, 	0.5694 },
+				{ 0.4583, 	0.5104, 	0.5833 },
+				{ 0.4722, 	0.5295, 	0.5972 },
+				{ 0.4861, 	0.5486, 	0.6111 },
+				{ 0.5, 	0.5677, 	0.625 },
+				{ 0.5139, 	0.5868, 	0.6389 },
+				{ 0.5278, 	0.6059, 	0.6528 },
+				{ 0.5417, 	0.625, 	0.6667 },
+				{ 0.5556, 	0.6441, 	0.6806 },
+				{ 0.5694, 	0.6632, 	0.6944 },
+				{ 0.5833, 	0.6823, 	0.7083 },
+				{ 0.5972, 	0.7014, 	0.7222 },
+				{ 0.6111, 	0.7205, 	0.7361 },
+				{ 0.625, 	0.7396, 	0.75 },
+				{ 0.6389, 	0.7587, 	0.7639 },
+				{ 0.6528, 	0.7778, 	0.7778 },
+				{ 0.6745, 	0.7917, 	0.7917 },
+				{ 0.6962, 	0.8056, 	0.8056 },
+				{ 0.7179, 	0.8194, 	0.8194 },
+				{ 0.7396, 	0.8333, 	0.8333 },
+				{ 0.7613, 	0.8472, 	0.8472 },
+				{ 0.783, 	0.8611, 	0.8611 },
+				{ 0.8047, 	0.875, 	0.875 },
+				{ 0.8264, 	0.8889, 	0.8889 },
+				{ 0.8481, 	0.9028, 	0.9028 },
+				{ 0.8698, 	0.9167, 	0.9167 },
+				{ 0.8915, 	0.9306, 	0.9306 },
+				{ 0.9132, 	0.9444, 	0.9444 },
+				{ 0.9349, 	0.9583, 	0.9583 },
+				{ 0.9566, 	0.9722, 	0.9722 },
+				{ 0.9783, 	0.9861, 	0.9861 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}		
+//-------------------------------------------------------
+	public void setCool()
+	{
+		d = new double[][]{
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0159, 	0.9841, 	1.0 },
+				{ 0.0317, 	0.9683, 	1.0 },
+				{ 0.0476, 	0.9524, 	1.0 },
+				{ 0.0635, 	0.9365, 	1.0 },
+				{ 0.0794, 	0.9206, 	1.0 },
+				{ 0.0952, 	0.9048, 	1.0 },
+				{ 0.1111, 	0.8889, 	1.0 },
+				{ 0.127, 	0.873, 	1.0 },
+				{ 0.1429, 	0.8571, 	1.0 },
+				{ 0.1587, 	0.8413, 	1.0 },
+				{ 0.1746, 	0.8254, 	1.0 },
+				{ 0.1905, 	0.8095, 	1.0 },
+				{ 0.2063, 	0.7937, 	1.0 },
+				{ 0.2222, 	0.7778, 	1.0 },
+				{ 0.2381, 	0.7619, 	1.0 },
+				{ 0.254, 	0.746, 	1.0 },
+				{ 0.2698, 	0.7302, 	1.0 },
+				{ 0.2857, 	0.7143, 	1.0 },
+				{ 0.3016, 	0.6984, 	1.0 },
+				{ 0.3175, 	0.6825, 	1.0 },
+				{ 0.3333, 	0.6667, 	1.0 },
+				{ 0.3492, 	0.6508, 	1.0 },
+				{ 0.3651, 	0.6349, 	1.0 },
+				{ 0.381, 	0.619, 	1.0 },
+				{ 0.3968, 	0.6032, 	1.0 },
+				{ 0.4127, 	0.5873, 	1.0 },
+				{ 0.4286, 	0.5714, 	1.0 },
+				{ 0.4444, 	0.5556, 	1.0 },
+				{ 0.4603, 	0.5397, 	1.0 },
+				{ 0.4762, 	0.5238, 	1.0 },
+				{ 0.4921, 	0.5079, 	1.0 },
+				{ 0.5079, 	0.4921, 	1.0 },
+				{ 0.5238, 	0.4762, 	1.0 },
+				{ 0.5397, 	0.4603, 	1.0 },
+				{ 0.5556, 	0.4444, 	1.0 },
+				{ 0.5714, 	0.4286, 	1.0 },
+				{ 0.5873, 	0.4127, 	1.0 },
+				{ 0.6032, 	0.3968, 	1.0 },
+				{ 0.619, 	0.381, 	1.0 },
+				{ 0.6349, 	0.3651, 	1.0 },
+				{ 0.6508, 	0.3492, 	1.0 },
+				{ 0.6667, 	0.3333, 	1.0 },
+				{ 0.6825, 	0.3175, 	1.0 },
+				{ 0.6984, 	0.3016, 	1.0 },
+				{ 0.7143, 	0.2857, 	1.0 },
+				{ 0.7302, 	0.2698, 	1.0 },
+				{ 0.746, 	0.254, 	1.0 },
+				{ 0.7619, 	0.2381, 	1.0 },
+				{ 0.7778, 	0.2222, 	1.0 },
+				{ 0.7937, 	0.2063, 	1.0 },
+				{ 0.8095, 	0.1905, 	1.0 },
+				{ 0.8254, 	0.1746, 	1.0 },
+				{ 0.8413, 	0.1587, 	1.0 },
+				{ 0.8571, 	0.1429, 	1.0 },
+				{ 0.873, 	0.127, 	1.0 },
+				{ 0.8889, 	0.1111, 	1.0 },
+				{ 0.9048, 	0.0952, 	1.0 },
+				{ 0.9206, 	0.0794, 	1.0 },
+				{ 0.9365, 	0.0635, 	1.0 },
+				{ 0.9524, 	0.0476, 	1.0 },
+				{ 0.9683, 	0.0317, 	1.0 },
+				{ 0.9841, 	0.0159, 	1.0 },
+				{ 1.0, 	0.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setCopper()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0 },
+				{ 0.0198, 	0.0124, 	0.0079 },
+				{ 0.0397, 	0.0248, 	0.0158 },
+				{ 0.0595, 	0.0372, 	0.0237 },
+				{ 0.0794, 	0.0496, 	0.0316 },
+				{ 0.0992, 	0.062, 	0.0395 },
+				{ 0.119, 	0.0744, 	0.0474 },
+				{ 0.1389, 	0.0868, 	0.0553 },
+				{ 0.1587, 	0.0992, 	0.0632 },
+				{ 0.1786, 	0.1116, 	0.0711 },
+				{ 0.1984, 	0.124, 	0.079 },
+				{ 0.2183, 	0.1364, 	0.0869 },
+				{ 0.2381, 	0.1488, 	0.0948 },
+				{ 0.2579, 	0.1612, 	0.1027 },
+				{ 0.2778, 	0.1736, 	0.1106 },
+				{ 0.2976, 	0.186, 	0.1185 },
+				{ 0.3175, 	0.1984, 	0.1263 },
+				{ 0.3373, 	0.2108, 	0.1342 },
+				{ 0.3571, 	0.2232, 	0.1421 },
+				{ 0.377, 	0.2356, 	0.15 },
+				{ 0.3968, 	0.248, 	0.1579 },
+				{ 0.4167, 	0.2604, 	0.1658 },
+				{ 0.4365, 	0.2728, 	0.1737 },
+				{ 0.4563, 	0.2852, 	0.1816 },
+				{ 0.4762, 	0.2976, 	0.1895 },
+				{ 0.496, 	0.31, 	0.1974 },
+				{ 0.5159, 	0.3224, 	0.2053 },
+				{ 0.5357, 	0.3348, 	0.2132 },
+				{ 0.5556, 	0.3472, 	0.2211 },
+				{ 0.5754, 	0.3596, 	0.229 },
+				{ 0.5952, 	0.372, 	0.2369 },
+				{ 0.6151, 	0.3844, 	0.2448 },
+				{ 0.6349, 	0.3968, 	0.2527 },
+				{ 0.6548, 	0.4092, 	0.2606 },
+				{ 0.6746, 	0.4216, 	0.2685 },
+				{ 0.6944, 	0.434, 	0.2764 },
+				{ 0.7143, 	0.4464, 	0.2843 },
+				{ 0.7341, 	0.4588, 	0.2922 },
+				{ 0.754, 	0.4712, 	0.3001 },
+				{ 0.7738, 	0.4836, 	0.308 },
+				{ 0.7937, 	0.496, 	0.3159 },
+				{ 0.8135, 	0.5084, 	0.3238 },
+				{ 0.8333, 	0.5208, 	0.3317 },
+				{ 0.8532, 	0.5332, 	0.3396 },
+				{ 0.873, 	0.5456, 	0.3475 },
+				{ 0.8929, 	0.558, 	0.3554 },
+				{ 0.9127, 	0.5704, 	0.3633 },
+				{ 0.9325, 	0.5828, 	0.3712 },
+				{ 0.9524, 	0.5952, 	0.379 },
+				{ 0.9722, 	0.6076, 	0.3869 },
+				{ 0.9921, 	0.62, 	0.3948 },
+				{ 1.0, 	0.6324, 	0.4027 },
+				{ 1.0, 	0.6448, 	0.4106 },
+				{ 1.0, 	0.6572, 	0.4185 },
+				{ 1.0, 	0.6696, 	0.4264 },
+				{ 1.0, 	0.682, 	0.4343 },
+				{ 1.0, 	0.6944, 	0.4422 },
+				{ 1.0, 	0.7068, 	0.4501 },
+				{ 1.0, 	0.7192, 	0.458 },
+				{ 1.0, 	0.7316, 	0.4659 },
+				{ 1.0, 	0.744, 	0.4738 },
+				{ 1.0, 	0.7564, 	0.4817 },
+				{ 1.0, 	0.7688, 	0.4896 },
+				{ 1.0, 	0.7812, 	0.4975 },
+			};
+	}
+//-------------------------------------------------------
+	public void setGray()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.0 },
+				{ 0.0159, 	0.0159, 	0.0159 },
+				{ 0.0317, 	0.0317, 	0.0317 },
+				{ 0.0476, 	0.0476, 	0.0476 },
+				{ 0.0635, 	0.0635, 	0.0635 },
+				{ 0.0794, 	0.0794, 	0.0794 },
+				{ 0.0952, 	0.0952, 	0.0952 },
+				{ 0.1111, 	0.1111, 	0.1111 },
+				{ 0.127, 	0.127, 	0.127 },
+				{ 0.1429, 	0.1429, 	0.1429 },
+				{ 0.1587, 	0.1587, 	0.1587 },
+				{ 0.1746, 	0.1746, 	0.1746 },
+				{ 0.1905, 	0.1905, 	0.1905 },
+				{ 0.2063, 	0.2063, 	0.2063 },
+				{ 0.2222, 	0.2222, 	0.2222 },
+				{ 0.2381, 	0.2381, 	0.2381 },
+				{ 0.254, 	0.254, 	0.254 },
+				{ 0.2698, 	0.2698, 	0.2698 },
+				{ 0.2857, 	0.2857, 	0.2857 },
+				{ 0.3016, 	0.3016, 	0.3016 },
+				{ 0.3175, 	0.3175, 	0.3175 },
+				{ 0.3333, 	0.3333, 	0.3333 },
+				{ 0.3492, 	0.3492, 	0.3492 },
+				{ 0.3651, 	0.3651, 	0.3651 },
+				{ 0.381, 	0.381, 	0.381 },
+				{ 0.3968, 	0.3968, 	0.3968 },
+				{ 0.4127, 	0.4127, 	0.4127 },
+				{ 0.4286, 	0.4286, 	0.4286 },
+				{ 0.4444, 	0.4444, 	0.4444 },
+				{ 0.4603, 	0.4603, 	0.4603 },
+				{ 0.4762, 	0.4762, 	0.4762 },
+				{ 0.4921, 	0.4921, 	0.4921 },
+				{ 0.5079, 	0.5079, 	0.5079 },
+				{ 0.5238, 	0.5238, 	0.5238 },
+				{ 0.5397, 	0.5397, 	0.5397 },
+				{ 0.5556, 	0.5556, 	0.5556 },
+				{ 0.5714, 	0.5714, 	0.5714 },
+				{ 0.5873, 	0.5873, 	0.5873 },
+				{ 0.6032, 	0.6032, 	0.6032 },
+				{ 0.619, 	0.619, 	0.619 },
+				{ 0.6349, 	0.6349, 	0.6349 },
+				{ 0.6508, 	0.6508, 	0.6508 },
+				{ 0.6667, 	0.6667, 	0.6667 },
+				{ 0.6825, 	0.6825, 	0.6825 },
+				{ 0.6984, 	0.6984, 	0.6984 },
+				{ 0.7143, 	0.7143, 	0.7143 },
+				{ 0.7302, 	0.7302, 	0.7302 },
+				{ 0.746, 	0.746, 	0.746 },
+				{ 0.7619, 	0.7619, 	0.7619 },
+				{ 0.7778, 	0.7778, 	0.7778 },
+				{ 0.7937, 	0.7937, 	0.7937 },
+				{ 0.8095, 	0.8095, 	0.8095 },
+				{ 0.8254, 	0.8254, 	0.8254 },
+				{ 0.8413, 	0.8413, 	0.8413 },
+				{ 0.8571, 	0.8571, 	0.8571 },
+				{ 0.873, 	0.873, 	0.873 },
+				{ 0.8889, 	0.8889, 	0.8889 },
+				{ 0.9048, 	0.9048, 	0.9048 },
+				{ 0.9206, 	0.9206, 	0.9206 },
+				{ 0.9365, 	0.9365, 	0.9365 },
+				{ 0.9524, 	0.9524, 	0.9524 },
+				{ 0.9683, 	0.9683, 	0.9683 },
+				{ 0.9841, 	0.9841, 	0.9841 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setHot()
+	{
+		d = new double[][]{
+				{ 0.0417, 	0.0, 	0.0 },
+				{ 0.0833, 	0.0, 	0.0 },
+				{ 0.125, 	0.0, 	0.0 },
+				{ 0.1667, 	0.0, 	0.0 },
+				{ 0.2083, 	0.0, 	0.0 },
+				{ 0.25, 	0.0, 	0.0 },
+				{ 0.2917, 	0.0, 	0.0 },
+				{ 0.3333, 	0.0, 	0.0 },
+				{ 0.375, 	0.0, 	0.0 },
+				{ 0.4167, 	0.0, 	0.0 },
+				{ 0.4583, 	0.0, 	0.0 },
+				{ 0.5, 	0.0, 	0.0 },
+				{ 0.5417, 	0.0, 	0.0 },
+				{ 0.5833, 	0.0, 	0.0 },
+				{ 0.625, 	0.0, 	0.0 },
+				{ 0.6667, 	0.0, 	0.0 },
+				{ 0.7083, 	0.0, 	0.0 },
+				{ 0.75, 	0.0, 	0.0 },
+				{ 0.7917, 	0.0, 	0.0 },
+				{ 0.8333, 	0.0, 	0.0 },
+				{ 0.875, 	0.0, 	0.0 },
+				{ 0.9167, 	0.0, 	0.0 },
+				{ 0.9583, 	0.0, 	0.0 },
+				{ 1.0, 	0.0, 	0.0 },
+				{ 1.0, 	0.0417, 	0.0 },
+				{ 1.0, 	0.0833, 	0.0 },
+				{ 1.0, 	0.125, 	0.0 },
+				{ 1.0, 	0.1667, 	0.0 },
+				{ 1.0, 	0.2083, 	0.0 },
+				{ 1.0, 	0.25, 	0.0 },
+				{ 1.0, 	0.2917, 	0.0 },
+				{ 1.0, 	0.3333, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.4167, 	0.0 },
+				{ 1.0, 	0.4583, 	0.0 },
+				{ 1.0, 	0.5, 	0.0 },
+				{ 1.0, 	0.5417, 	0.0 },
+				{ 1.0, 	0.5833, 	0.0 },
+				{ 1.0, 	0.625, 	0.0 },
+				{ 1.0, 	0.6667, 	0.0 },
+				{ 1.0, 	0.7083, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.7917, 	0.0 },
+				{ 1.0, 	0.8333, 	0.0 },
+				{ 1.0, 	0.875, 	0.0 },
+				{ 1.0, 	0.9167, 	0.0 },
+				{ 1.0, 	0.9583, 	0.0 },
+				{ 1.0, 	1.0, 	0.0 },
+				{ 1.0, 	1.0, 	0.0625 },
+				{ 1.0, 	1.0, 	0.125 },
+				{ 1.0, 	1.0, 	0.1875 },
+				{ 1.0, 	1.0, 	0.25 },
+				{ 1.0, 	1.0, 	0.3125 },
+				{ 1.0, 	1.0, 	0.375 },
+				{ 1.0, 	1.0, 	0.4375 },
+				{ 1.0, 	1.0, 	0.5 },
+				{ 1.0, 	1.0, 	0.5625 },
+				{ 1.0, 	1.0, 	0.625 },
+				{ 1.0, 	1.0, 	0.6875 },
+				{ 1.0, 	1.0, 	0.75 },
+				{ 1.0, 	1.0, 	0.8125 },
+				{ 1.0, 	1.0, 	0.875 },
+				{ 1.0, 	1.0, 	0.9375 },
+				{ 1.0, 	1.0, 	1.0 },
+			};
+	}
+//-------------------------------------------------------
+	public void setJet()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	0.5625 },
+				{ 0.0, 	0.0, 	0.625 },
+				{ 0.0, 	0.0, 	0.6875 },
+				{ 0.0, 	0.0, 	0.75 },
+				{ 0.0, 	0.0, 	0.8125 },
+				{ 0.0, 	0.0, 	0.875 },
+				{ 0.0, 	0.0, 	0.9375 },
+				{ 0.0, 	0.0, 	1.0 },
+				{ 0.0, 	0.0625, 	1.0 },
+				{ 0.0, 	0.125, 	1.0 },
+				{ 0.0, 	0.1875, 	1.0 },
+				{ 0.0, 	0.25, 	1.0 },
+				{ 0.0, 	0.3125, 	1.0 },
+				{ 0.0, 	0.375, 	1.0 },
+				{ 0.0, 	0.4375, 	1.0 },
+				{ 0.0, 	0.5, 	1.0 },
+				{ 0.0, 	0.5625, 	1.0 },
+				{ 0.0, 	0.625, 	1.0 },
+				{ 0.0, 	0.6875, 	1.0 },
+				{ 0.0, 	0.75, 	1.0 },
+				{ 0.0, 	0.8125, 	1.0 },
+				{ 0.0, 	0.875, 	1.0 },
+				{ 0.0, 	0.9375, 	1.0 },
+				{ 0.0, 	1.0, 	1.0 },
+				{ 0.0625, 	1.0, 	0.9375 },
+				{ 0.125, 	1.0, 	0.875 },
+				{ 0.1875, 	1.0, 	0.8125 },
+				{ 0.25, 	1.0, 	0.75 },
+				{ 0.3125, 	1.0, 	0.6875 },
+				{ 0.375, 	1.0, 	0.625 },
+				{ 0.4375, 	1.0, 	0.5625 },
+				{ 0.5, 	1.0, 	0.5 },
+				{ 0.5625, 	1.0, 	0.4375 },
+				{ 0.625, 	1.0, 	0.375 },
+				{ 0.6875, 	1.0, 	0.3125 },
+				{ 0.75, 	1.0, 	0.25 },
+				{ 0.8125, 	1.0, 	0.1875 },
+				{ 0.875, 	1.0, 	0.125 },
+				{ 0.9375, 	1.0, 	0.0625 },
+				{ 1.0, 	1.0, 	0.0 },
+				{ 1.0, 	0.9375, 	0.0 },
+				{ 1.0, 	0.875, 	0.0 },
+				{ 1.0, 	0.8125, 	0.0 },
+				{ 1.0, 	0.75, 	0.0 },
+				{ 1.0, 	0.6875, 	0.0 },
+				{ 1.0, 	0.625, 	0.0 },
+				{ 1.0, 	0.5625, 	0.0 },
+				{ 1.0, 	0.5, 	0.0 },
+				{ 1.0, 	0.4375, 	0.0 },
+				{ 1.0, 	0.375, 	0.0 },
+				{ 1.0, 	0.3125, 	0.0 },
+				{ 1.0, 	0.25, 	0.0 },
+				{ 1.0, 	0.1875, 	0.0 },
+				{ 1.0, 	0.125, 	0.0 },
+				{ 1.0, 	0.0625, 	0.0 },
+				{ 1.0, 	0.0, 	0.0 },
+				{ 0.9375, 	0.0, 	0.0 },
+				{ 0.875, 	0.0, 	0.0 },
+				{ 0.8125, 	0.0, 	0.0 },
+				{ 0.75, 	0.0, 	0.0 },
+				{ 0.6875, 	0.0, 	0.0 },
+				{ 0.625, 	0.0, 	0.0 },
+				{ 0.5625, 	0.0, 	0.0 },
+				{ 0.5, 	0.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setPink()
+	{
+		d = new double[][]{
+				{ 0.1179, 	0.0, 	0.0 },
+				{ 0.1959, 	0.1029, 	0.1029 },
+				{ 0.2507, 	0.1455, 	0.1455 },
+				{ 0.2955, 	0.1782, 	0.1782 },
+				{ 0.3343, 	0.2057, 	0.2057 },
+				{ 0.3691, 	0.23, 	0.23 },
+				{ 0.4009, 	0.252, 	0.252 },
+				{ 0.4303, 	0.2722, 	0.2722 },
+				{ 0.4579, 	0.291, 	0.291 },
+				{ 0.4839, 	0.3086, 	0.3086 },
+				{ 0.5085, 	0.3253, 	0.3253 },
+				{ 0.532, 	0.3412, 	0.3412 },
+				{ 0.5546, 	0.3563, 	0.3563 },
+				{ 0.5762, 	0.3709, 	0.3709 },
+				{ 0.5971, 	0.3849, 	0.3849 },
+				{ 0.6172, 	0.3984, 	0.3984 },
+				{ 0.6367, 	0.4115, 	0.4115 },
+				{ 0.6557, 	0.4241, 	0.4241 },
+				{ 0.6741, 	0.4364, 	0.4364 },
+				{ 0.692, 	0.4484, 	0.4484 },
+				{ 0.7094, 	0.46, 	0.46 },
+				{ 0.7265, 	0.4714, 	0.4714 },
+				{ 0.7431, 	0.4825, 	0.4825 },
+				{ 0.7594, 	0.4933, 	0.4933 },
+				{ 0.7664, 	0.5175, 	0.504 },
+				{ 0.7732, 	0.5407, 	0.5143 },
+				{ 0.78, 	0.5628, 	0.5245 },
+				{ 0.7868, 	0.5842, 	0.5345 },
+				{ 0.7935, 	0.6048, 	0.5443 },
+				{ 0.8001, 	0.6247, 	0.554 },
+				{ 0.8067, 	0.644, 	0.5634 },
+				{ 0.8133, 	0.6627, 	0.5727 },
+				{ 0.8197, 	0.6809, 	0.5819 },
+				{ 0.8262, 	0.6986, 	0.5909 },
+				{ 0.8325, 	0.7159, 	0.5998 },
+				{ 0.8389, 	0.7328, 	0.6086 },
+				{ 0.8452, 	0.7493, 	0.6172 },
+				{ 0.8514, 	0.7655, 	0.6257 },
+				{ 0.8576, 	0.7813, 	0.6341 },
+				{ 0.8637, 	0.7968, 	0.6424 },
+				{ 0.8698, 	0.812, 	0.6506 },
+				{ 0.8759, 	0.827, 	0.6587 },
+				{ 0.8819, 	0.8416, 	0.6667 },
+				{ 0.8879, 	0.856, 	0.6746 },
+				{ 0.8938, 	0.8702, 	0.6824 },
+				{ 0.8997, 	0.8842, 	0.6901 },
+				{ 0.9056, 	0.8979, 	0.6977 },
+				{ 0.9114, 	0.9114, 	0.7052 },
+				{ 0.9172, 	0.9172, 	0.7272 },
+				{ 0.923, 	0.923, 	0.7485 },
+				{ 0.9287, 	0.9287, 	0.7692 },
+				{ 0.9344, 	0.9344, 	0.7893 },
+				{ 0.94, 	0.94, 	0.809 },
+				{ 0.9456, 	0.9456, 	0.8282 },
+				{ 0.9512, 	0.9512, 	0.8469 },
+				{ 0.9567, 	0.9567, 	0.8653 },
+				{ 0.9623, 	0.9623, 	0.8832 },
+				{ 0.9677, 	0.9677, 	0.9008 },
+				{ 0.9732, 	0.9732, 	0.9181 },
+				{ 0.9786, 	0.9786, 	0.9351 },
+				{ 0.984, 	0.984, 	0.9517 },
+				{ 0.9894, 	0.9894, 	0.9681 },
+				{ 0.9947, 	0.9947, 	0.9842 },
+				{ 1.0, 	1.0, 	1.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setSpring()
+	{
+		d = new double[][]{
+				{ 1.0, 	0.0, 	1.0 },
+				{ 1.0, 	0.0159, 	0.9841 },
+				{ 1.0, 	0.0317, 	0.9683 },
+				{ 1.0, 	0.0476, 	0.9524 },
+				{ 1.0, 	0.0635, 	0.9365 },
+				{ 1.0, 	0.0794, 	0.9206 },
+				{ 1.0, 	0.0952, 	0.9048 },
+				{ 1.0, 	0.1111, 	0.8889 },
+				{ 1.0, 	0.127, 	0.873 },
+				{ 1.0, 	0.1429, 	0.8571 },
+				{ 1.0, 	0.1587, 	0.8413 },
+				{ 1.0, 	0.1746, 	0.8254 },
+				{ 1.0, 	0.1905, 	0.8095 },
+				{ 1.0, 	0.2063, 	0.7937 },
+				{ 1.0, 	0.2222, 	0.7778 },
+				{ 1.0, 	0.2381, 	0.7619 },
+				{ 1.0, 	0.254, 	0.746 },
+				{ 1.0, 	0.2698, 	0.7302 },
+				{ 1.0, 	0.2857, 	0.7143 },
+				{ 1.0, 	0.3016, 	0.6984 },
+				{ 1.0, 	0.3175, 	0.6825 },
+				{ 1.0, 	0.3333, 	0.6667 },
+				{ 1.0, 	0.3492, 	0.6508 },
+				{ 1.0, 	0.3651, 	0.6349 },
+				{ 1.0, 	0.381, 	0.619 },
+				{ 1.0, 	0.3968, 	0.6032 },
+				{ 1.0, 	0.4127, 	0.5873 },
+				{ 1.0, 	0.4286, 	0.5714 },
+				{ 1.0, 	0.4444, 	0.5556 },
+				{ 1.0, 	0.4603, 	0.5397 },
+				{ 1.0, 	0.4762, 	0.5238 },
+				{ 1.0, 	0.4921, 	0.5079 },
+				{ 1.0, 	0.5079, 	0.4921 },
+				{ 1.0, 	0.5238, 	0.4762 },
+				{ 1.0, 	0.5397, 	0.4603 },
+				{ 1.0, 	0.5556, 	0.4444 },
+				{ 1.0, 	0.5714, 	0.4286 },
+				{ 1.0, 	0.5873, 	0.4127 },
+				{ 1.0, 	0.6032, 	0.3968 },
+				{ 1.0, 	0.619, 	0.381 },
+				{ 1.0, 	0.6349, 	0.3651 },
+				{ 1.0, 	0.6508, 	0.3492 },
+				{ 1.0, 	0.6667, 	0.3333 },
+				{ 1.0, 	0.6825, 	0.3175 },
+				{ 1.0, 	0.6984, 	0.3016 },
+				{ 1.0, 	0.7143, 	0.2857 },
+				{ 1.0, 	0.7302, 	0.2698 },
+				{ 1.0, 	0.746, 	0.254 },
+				{ 1.0, 	0.7619, 	0.2381 },
+				{ 1.0, 	0.7778, 	0.2222 },
+				{ 1.0, 	0.7937, 	0.2063 },
+				{ 1.0, 	0.8095, 	0.1905 },
+				{ 1.0, 	0.8254, 	0.1746 },
+				{ 1.0, 	0.8413, 	0.1587 },
+				{ 1.0, 	0.8571, 	0.1429 },
+				{ 1.0, 	0.873, 	0.127 },
+				{ 1.0, 	0.8889, 	0.1111 },
+				{ 1.0, 	0.9048, 	0.0952 },
+				{ 1.0, 	0.9206, 	0.0794 },
+				{ 1.0, 	0.9365, 	0.0635 },
+				{ 1.0, 	0.9524, 	0.0476 },
+				{ 1.0, 	0.9683, 	0.0317 },
+				{ 1.0, 	0.9841, 	0.0159 },
+				{ 1.0, 	1.0, 	0.0 }
+			};
+	}
+//-------------------------------------------------------
+	public void setSummer()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.5, 	0.4 },
+				{ 0.0159, 	0.5079, 	0.4 },
+				{ 0.0317, 	0.5159, 	0.4 },
+				{ 0.0476, 	0.5238, 	0.4 },
+				{ 0.0635, 	0.5317, 	0.4 },
+				{ 0.0794, 	0.5397, 	0.4 },
+				{ 0.0952, 	0.5476, 	0.4 },
+				{ 0.1111, 	0.5556, 	0.4 },
+				{ 0.127, 	0.5635, 	0.4 },
+				{ 0.1429, 	0.5714, 	0.4 },
+				{ 0.1587, 	0.5794, 	0.4 },
+				{ 0.1746, 	0.5873, 	0.4 },
+				{ 0.1905, 	0.5952, 	0.4 },
+				{ 0.2063, 	0.6032, 	0.4 },
+				{ 0.2222, 	0.6111, 	0.4 },
+				{ 0.2381, 	0.619, 	0.4 },
+				{ 0.254, 	0.627, 	0.4 },
+				{ 0.2698, 	0.6349, 	0.4 },
+				{ 0.2857, 	0.6429, 	0.4 },
+				{ 0.3016, 	0.6508, 	0.4 },
+				{ 0.3175, 	0.6587, 	0.4 },
+				{ 0.3333, 	0.6667, 	0.4 },
+				{ 0.3492, 	0.6746, 	0.4 },
+				{ 0.3651, 	0.6825, 	0.4 },
+				{ 0.381, 	0.6905, 	0.4 },
+				{ 0.3968, 	0.6984, 	0.4 },
+				{ 0.4127, 	0.7063, 	0.4 },
+				{ 0.4286, 	0.7143, 	0.4 },
+				{ 0.4444, 	0.7222, 	0.4 },
+				{ 0.4603, 	0.7302, 	0.4 },
+				{ 0.4762, 	0.7381, 	0.4 },
+				{ 0.4921, 	0.746, 	0.4 },
+				{ 0.5079, 	0.754, 	0.4 },
+				{ 0.5238, 	0.7619, 	0.4 },
+				{ 0.5397, 	0.7698, 	0.4 },
+				{ 0.5556, 	0.7778, 	0.4 },
+				{ 0.5714, 	0.7857, 	0.4 },
+				{ 0.5873, 	0.7937, 	0.4 },
+				{ 0.6032, 	0.8016, 	0.4 },
+				{ 0.619, 	0.8095, 	0.4 },
+				{ 0.6349, 	0.8175, 	0.4 },
+				{ 0.6508, 	0.8254, 	0.4 },
+				{ 0.6667, 	0.8333, 	0.4 },
+				{ 0.6825, 	0.8413, 	0.4 },
+				{ 0.6984, 	0.8492, 	0.4 },
+				{ 0.7143, 	0.8571, 	0.4 },
+				{ 0.7302, 	0.8651, 	0.4 },
+				{ 0.746, 	0.873, 	0.4 },
+				{ 0.7619, 	0.881, 	0.4 },
+				{ 0.7778, 	0.8889, 	0.4 },
+				{ 0.7937, 	0.8968, 	0.4 },
+				{ 0.8095, 	0.9048, 	0.4 },
+				{ 0.8254, 	0.9127, 	0.4 },
+				{ 0.8413, 	0.9206, 	0.4 },
+				{ 0.8571, 	0.9286, 	0.4 },
+				{ 0.873, 	0.9365, 	0.4 },
+				{ 0.8889, 	0.9444, 	0.4 },
+				{ 0.9048, 	0.9524, 	0.4 },
+				{ 0.9206, 	0.9603, 	0.4 },
+				{ 0.9365, 	0.9683, 	0.4 },
+				{ 0.9524, 	0.9762, 	0.4 },
+				{ 0.9683, 	0.9841, 	0.4 },
+				{ 0.9841, 	0.9921, 	0.4 },
+				{ 1.0, 	1.0, 	0.4 }
+			};
+	}
+//-------------------------------------------------------
+	public void setWinter()
+	{
+		d = new double[][]{
+				{ 0.0, 	0.0, 	1.0 },
+				{ 0.0, 	0.0159, 	0.9921 },
+				{ 0.0, 	0.0317, 	0.9841 },
+				{ 0.0, 	0.0476, 	0.9762 },
+				{ 0.0, 	0.0635, 	0.9683 },
+				{ 0.0, 	0.0794, 	0.9603 },
+				{ 0.0, 	0.0952, 	0.9524 },
+				{ 0.0, 	0.1111, 	0.9444 },
+				{ 0.0, 	0.127, 	0.9365 },
+				{ 0.0, 	0.1429, 	0.9286 },
+				{ 0.0, 	0.1587, 	0.9206 },
+				{ 0.0, 	0.1746, 	0.9127 },
+				{ 0.0, 	0.1905, 	0.9048 },
+				{ 0.0, 	0.2063, 	0.8968 },
+				{ 0.0, 	0.2222, 	0.8889 },
+				{ 0.0, 	0.2381, 	0.881 },
+				{ 0.0, 	0.254, 	0.873 },
+				{ 0.0, 	0.2698, 	0.8651 },
+				{ 0.0, 	0.2857, 	0.8571 },
+				{ 0.0, 	0.3016, 	0.8492 },
+				{ 0.0, 	0.3175, 	0.8413 },
+				{ 0.0, 	0.3333, 	0.8333 },
+				{ 0.0, 	0.3492, 	0.8254 },
+				{ 0.0, 	0.3651, 	0.8175 },
+				{ 0.0, 	0.381, 	0.8095 },
+				{ 0.0, 	0.3968, 	0.8016 },
+				{ 0.0, 	0.4127, 	0.7937 },
+				{ 0.0, 	0.4286, 	0.7857 },
+				{ 0.0, 	0.4444, 	0.7778 },
+				{ 0.0, 	0.4603, 	0.7698 },
+				{ 0.0, 	0.4762, 	0.7619 },
+				{ 0.0, 	0.4921, 	0.754 },
+				{ 0.0, 	0.5079, 	0.746 },
+				{ 0.0, 	0.5238, 	0.7381 },
+				{ 0.0, 	0.5397, 	0.7302 },
+				{ 0.0, 	0.5556, 	0.7222 },
+				{ 0.0, 	0.5714, 	0.7143 },
+				{ 0.0, 	0.5873, 	0.7063 },
+				{ 0.0, 	0.6032, 	0.6984 },
+				{ 0.0, 	0.619, 	0.6905 },
+				{ 0.0, 	0.6349, 	0.6825 },
+				{ 0.0, 	0.6508, 	0.6746 },
+				{ 0.0, 	0.6667, 	0.6667 },
+				{ 0.0, 	0.6825, 	0.6587 },
+				{ 0.0, 	0.6984, 	0.6508 },
+				{ 0.0, 	0.7143, 	0.6429 },
+				{ 0.0, 	0.7302, 	0.6349 },
+				{ 0.0, 	0.746, 	0.627 },
+				{ 0.0, 	0.7619, 	0.619 },
+				{ 0.0, 	0.7778, 	0.6111 },
+				{ 0.0, 	0.7937, 	0.6032 },
+				{ 0.0, 	0.8095, 	0.5952 },
+				{ 0.0, 	0.8254, 	0.5873 },
+				{ 0.0, 	0.8413, 	0.5794 },
+				{ 0.0, 	0.8571, 	0.5714 },
+				{ 0.0, 	0.873, 	0.5635 },
+				{ 0.0, 	0.8889, 	0.5556 },
+				{ 0.0, 	0.9048, 	0.5476 },
+				{ 0.0, 	0.9206, 	0.5397 },
+				{ 0.0, 	0.9365, 	0.5317 },
+				{ 0.0, 	0.9524, 	0.5238 },
+				{ 0.0, 	0.9683, 	0.5159 },
+				{ 0.0, 	0.9841, 	0.5079 },
+				{ 0.0, 	1.0, 	0.5 }
+			};
+	}	
+//-------------------------------------------------------
+	public void getRGB(double alpha, RGB rgb)
+	{
+
+		double d1,d2,d3;
+		double d1a,d2a,d3a;
+		double d1b,d2b,d3b;
+		int    index1,index2;
+
+		if (alpha==0){
+			d1=d[0][0];
+			d2=d[0][1];
+			d3=d[0][2];
+		}
+		else if (alpha==1){
+			d1=d[rowNumber-1][0];
+			d2=d[rowNumber-1][1];
+			d3=d[rowNumber-1][2];
+		}
+		else{
+			index1=(int)(alpha*(rowNumber-1));
+			index2=index1+1;
+			
+			d1a=d[index1][0];
+			d2a=d[index1][1];
+			d3a=d[index1][2];
+
+			d1b=d[index2][0];
+			d2b=d[index2][1];
+			d3b=d[index2][2];
+
+			d1=(d1a+d1b)/2;
+			d2=(d2a+d2b)/2;
+			d3=(d3a+d3b)/2;
+		}
+	
+		rgb.setR( (float) d1);
+		rgb.setG( (float) d2);
+		rgb.setB( (float) d3);
+	}	
+//-------------------------------------------------------
+} // end class colorMap
+/////////////////////////////////////////////////////////
+class RGB
+{
+	private float R,G,B;
+//-------------------------------------------------------
+	public void setR(float value) {this.R = value;}
+	public void setG(float value) {this.G = value;}
+	public void setB(float value) {this.B = value;}
+	public float getR() { return R;}
+	public float getG() { return G;}
+	public float getB() { return B;}
+//-------------------------------------------------------
+} //end class RGB	
+/////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMenu.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMenu.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMenu.java	(revision 15389)
@@ -0,0 +1,13 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.widget.Spinner;
+
+public class ColorMenu extends Spinner{
+
+	public ColorMenu(Context context) {
+		super(context);
+		// TODO Auto-generated constructor stub
+	}
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/DisplayNextView.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/DisplayNextView.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/DisplayNextView.java	(revision 15389)
@@ -0,0 +1,42 @@
+package gov.nasa.jpl.issm;
+
+import android.view.animation.Animation;
+import android.view.animation.Animation.AnimationListener;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+class DisplayNextView implements AnimationListener {
+
+	private boolean mCurrentView;
+	private boolean containTextView;
+	ImageView mainImage;
+	ImageView infoImage;
+	TextView text;
+
+	public DisplayNextView(boolean currentView, ImageView image, TextView text) {
+		mCurrentView = currentView;
+		containTextView = true;
+		mainImage = image;
+		this.text = text;
+	}
+	
+	public DisplayNextView(boolean currentView, ImageView front, ImageView back) {
+		mCurrentView = currentView;
+		containTextView = false;
+		mainImage = front;
+		infoImage = back;
+	}
+
+	public void onAnimationStart(Animation animation) {
+	}
+
+	public void onAnimationEnd(Animation animation) {
+		if(containTextView)
+			mainImage.post(new SwapViews(mCurrentView, mainImage, text));
+		else
+			mainImage.post(new SwapViews(mCurrentView, mainImage, infoImage));
+	}
+
+	public void onAnimationRepeat(Animation animation) {
+	}
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/FlipAnimation.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/FlipAnimation.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/FlipAnimation.java	(revision 15389)
@@ -0,0 +1,55 @@
+package gov.nasa.jpl.issm;
+
+import android.graphics.Camera;
+import android.graphics.Matrix;
+import android.view.animation.Animation;
+import android.view.animation.Transformation;
+
+public class FlipAnimation  extends Animation 
+{
+	private final float mFromDegrees;
+	private final float mToDegrees;
+	private final float mCenterX;
+	private final float mCenterY;
+	private Camera mCamera;
+	
+	public FlipAnimation(float fromDegrees, float toDegrees,
+	   float centerX, float centerY) 
+	{
+		mFromDegrees = fromDegrees;
+		mToDegrees = toDegrees;
+		mCenterX = centerX;
+		mCenterY = centerY;
+	}
+		
+	@Override
+	public void initialize(int width, int height, int parentWidth, int parentHeight) 
+	{
+		super.initialize(width, height, parentWidth, parentHeight);
+		mCamera = new Camera();
+	}
+	
+	@Override
+	protected void applyTransformation(float interpolatedTime, Transformation t) {
+		final float fromDegrees = mFromDegrees;
+		float degrees = fromDegrees + ((mToDegrees - fromDegrees) * interpolatedTime);
+		
+		final float centerX = mCenterX;
+		final float centerY = mCenterY;
+		final Camera camera = mCamera;
+		
+		final Matrix matrix = t.getMatrix();
+		
+		camera.save();
+		
+		camera.rotateY(degrees);
+		
+		camera.getMatrix(matrix);
+		camera.restore();
+		
+		matrix.preTranslate(-centerX, -centerY);
+		matrix.postTranslate(centerX, centerY);
+	
+	}
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java	(revision 15389)
@@ -0,0 +1,78 @@
+package gov.nasa.jpl.issm;
+
+import java.util.List;
+
+import android.app.Activity;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.Gallery;
+import android.widget.ImageView;
+
+public class GalleryAdapter extends BaseAdapter {
+
+		private Activity context;
+
+		private static ImageView imageView;
+
+		
+		private List<Integer> plotsImages;
+		private static ViewHolder holder;
+		
+		public GalleryAdapter(Activity context, List<Integer> plotsImages) 
+		{
+				this.context = context;
+				this.plotsImages = plotsImages;
+		}
+
+
+		@Override
+		public int getCount() {
+			return plotsImages.size();
+		}
+
+		@Override
+		public Object getItem(int position) {
+			return null;
+		}
+
+		@Override
+		public long getItemId(int position) {
+			return 0;
+		}
+
+		@Override
+		public View getView(int position, View convertView, ViewGroup parent) {
+
+			if (convertView == null) {
+
+				holder = new ViewHolder();
+
+				imageView = new ImageView(this.context);
+
+				imageView.setPadding(3, 3, 3, 3);
+
+				convertView = imageView;
+
+				holder.imageView = imageView;
+
+				convertView.setTag(holder);
+
+			} else {
+
+				holder = (ViewHolder) convertView.getTag();
+			}
+
+	        
+	        holder.imageView.setImageBitmap(ImageList.getImageList().get(position));
+			holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
+			holder.imageView.setLayoutParams(new Gallery.LayoutParams(150, 90));
+
+			return imageView;
+		}
+
+		private static class ViewHolder {
+			ImageView imageView;
+		}
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryDescription.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryDescription.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryDescription.java	(revision 15389)
@@ -0,0 +1,52 @@
+package gov.nasa.jpl.issm;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+
+import android.content.Context;
+
+class GalleryDescription
+//////////////////////////////////////////////////////////////////
+{
+	private ArrayList<String> description;
+	private String[] rawtext;
+//----------------------------------------------------------------
+	public GalleryDescription(Context context)
+	{
+		description = new ArrayList<String> ();
+		InputStreamReader isr = new InputStreamReader(context.getResources().openRawResource(R.raw.text));
+		BufferedReader br = new BufferedReader(isr);
+		String delimiter = ":";
+		String line;
+		int index = 0;
+		try {
+			while ((line = br.readLine()) != null) 
+			{
+				//this if will continue adding if description is too long to the next line
+				if(!line.contains(delimiter))
+					description.add(index, description.get(index)+" "+line);
+				else
+				{	
+					rawtext = line.split(delimiter); 
+					//slot 0 contains the image number, slot 1 contains the description.
+					index = Integer.parseInt(rawtext[0]);
+					description.add(index, rawtext[1]);
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+	}
+//----------------------------------------------------------------	
+	public String getDescription(int index)
+	{
+		if(index >= description.size())
+		{
+			return "There is no detailed description for this image yet!";
+		}
+		return description.get(index);
+	}
+}
+///////////////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java	(revision 15389)
@@ -0,0 +1,241 @@
+package gov.nasa.jpl.issm;
+
+import java.util.ArrayList;
+import java.util.List;
+import android.app.Activity;
+import android.content.Intent;
+import android.graphics.Bitmap;
+import android.os.Bundle;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.animation.AccelerateInterpolator;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.TextView;
+import android.widget.Gallery;
+import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
+
+public class GalleryImage extends Activity {
+	
+	private GalleryDescription description;
+	private ImageView selectedImageView;
+	private TextView selectedTextView;
+	private ImageView photoState;
+	private ImageView infoState;
+	private ImageView leftArrowImageView;
+
+	private ImageView rightArrowImageView;
+
+	private Gallery gallery;
+
+	private int selectedImagePosition = 0;
+
+	//private List<Drawable> drawables;
+	private List<Integer> drawables;
+
+	private GalleryAdapter galImageAdapter;
+	
+	private boolean isFirstImage = true;
+
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.gallery);
+
+		getDrawablesList();
+		setupUI();
+	}
+
+	private void setupUI() {
+
+		selectedImageView = (ImageView) findViewById(R.id.front_view);
+		//selectedTextView = (TextView) findViewById(R.id.back_view);
+		selectedTextView = (TextView) findViewById(R.id.description);
+		//selectedTextView.setVisibility(View.GONE);
+		photoState = (ImageView) findViewById(R.id.photo_stage);
+		infoState = (ImageView) findViewById(R.id.info_stage);
+		photoState.setVisibility(View.GONE);
+		infoState.setVisibility(View.GONE);
+		leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
+		rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
+		gallery = (Gallery) findViewById(R.id.gallery);
+		description = new GalleryDescription(this);
+		
+		selectedImageView.setOnClickListener(new View.OnClickListener() 
+		{
+			   public void onClick(View view) {
+				    Intent i = new Intent(GalleryImage.this, ZoomImageViewActivity.class);
+					i.putExtra("imagePosition", selectedImagePosition);
+			        startActivity(i);
+			       
+			   }
+			});    
+		
+		infoState.setOnClickListener(new View.OnClickListener() 
+		{
+			   public void onClick(View view) {
+			    if (isFirstImage) {       
+			     applyRotation(0, 90);
+			     isFirstImage = !isFirstImage;
+
+			    } else {    
+			     applyRotation(0, -90);
+			     isFirstImage = !isFirstImage;
+			    }
+			   }
+			});          
+
+		leftArrowImageView.setOnClickListener(new OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+
+				if (selectedImagePosition > 0) {
+					--selectedImagePosition;
+
+				}
+
+				gallery.setSelection(selectedImagePosition, false);
+			}
+		});
+
+		rightArrowImageView.setOnClickListener(new OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+
+				if (selectedImagePosition < drawables.size() - 1) {
+					++selectedImagePosition;
+
+				}
+
+				gallery.setSelection(selectedImagePosition, false);
+
+			}
+		});
+
+		gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
+
+			@Override
+			public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+
+				selectedImagePosition = pos;
+
+				if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
+
+					leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
+					rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
+
+				} else if (selectedImagePosition == 0) {
+
+					leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
+
+				} else if (selectedImagePosition == drawables.size() - 1) {
+
+					rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
+				}
+
+				changeBorderForSelectedImage(selectedImagePosition);
+				setSelectedImage(selectedImagePosition);
+			}
+
+			@Override
+			public void onNothingSelected(AdapterView<?> arg0) {
+
+			}
+
+		});
+
+		galImageAdapter = new GalleryAdapter(this, drawables);
+
+		gallery.setAdapter(galImageAdapter);
+
+		if (drawables.size() > 0) {
+
+			gallery.setSelection(selectedImagePosition, false);
+
+		}
+
+		if (drawables.size() == 1) {
+
+			rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
+		}
+
+	}
+
+	private void changeBorderForSelectedImage(int selectedItemPos) {
+
+		int count = gallery.getChildCount();
+
+		for (int i = 0; i < count; i++) {
+
+			ImageView imageView = (ImageView) gallery.getChildAt(i);
+			imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
+			imageView.setPadding(3, 3, 3, 3);
+
+		}
+
+		ImageView imageView = (ImageView) gallery.getSelectedView();
+		imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
+		imageView.setPadding(3, 3, 3, 3);
+	}
+
+	private void getDrawablesList() {
+
+		drawables = new ArrayList<Integer>();
+		int resID;
+		for (int i = 0; i < 17; i++)
+		{
+			resID=getResources().getIdentifier("image"+i, "drawable", getPackageName());
+			drawables.add(resID);
+	        
+		}
+	}
+
+	private void setSelectedImage(int selectedImagePosition) {
+		
+		int width= getResources().getDisplayMetrics().widthPixels;
+        int height= getResources().getDisplayMetrics().heightPixels;
+		Bitmap b;
+		b = ImageResizer.decodeSampledBitmapFromResource(getResources(), drawables.get(selectedImagePosition), width, height);
+		b = Bitmap.createScaledBitmap(b, width, height, true);
+		selectedImageView.setImageBitmap(b);
+		selectedImageView.setScaleType(ScaleType.FIT_XY);
+		selectedTextView.setText(description.getDescription(selectedImagePosition ));
+	}
+	
+	private void applyRotation(float start, float end) 
+	{
+		// Find the center of image
+		final float centerX = photoState.getWidth() / 2.0f;
+		final float centerY = photoState.getHeight() / 2.0f;
+
+		// Create a new 3D rotation with the supplied parameter
+		// The animation listener is used to trigger the next animation
+		final FlipAnimation rotation =
+		       new FlipAnimation(start, end, centerX, centerY);
+		final FlipAnimation rotation2 =
+			       new FlipAnimation(start, end, centerX, centerY);
+		rotation.setDuration(500);
+		rotation.setFillAfter(true);
+		rotation.setInterpolator(new AccelerateInterpolator());
+		rotation.setAnimationListener(new DisplayNextView(isFirstImage, infoState, photoState));
+		rotation2.setDuration(500);
+		rotation2.setFillAfter(true);
+		rotation2.setInterpolator(new AccelerateInterpolator());
+		rotation2.setAnimationListener(new DisplayNextView(isFirstImage, selectedImageView, selectedTextView));
+		
+		
+
+		if (isFirstImage)
+		{
+			infoState.startAnimation(rotation);
+			selectedImageView.startAnimation(rotation2);
+		} else {
+			photoState.startAnimation(rotation);
+			selectedTextView.startAnimation(rotation2);
+		}
+
+	}
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java	(revision 15389)
@@ -0,0 +1,454 @@
+package gov.nasa.jpl.issm;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.DoubleBuffer;
+import android.opengl.GLSurfaceView;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.util.DisplayMetrics;
+import android.view.GestureDetector;
+import android.view.Gravity;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.view.GestureDetector.OnDoubleTapListener;
+import android.view.GestureDetector.OnGestureListener;
+import android.view.MotionEvent;
+import android.view.animation.AccelerateInterpolator;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.view.animation.TranslateAnimation;
+import android.widget.AdapterView;
+import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.Button;
+import android.widget.FrameLayout;
+import android.widget.ImageButton;
+import android.widget.ImageView;
+import android.widget.PopupWindow;
+import android.widget.Spinner;
+import android.widget.ViewFlipper;
+import android.os.Build;
+
+public class ISSM extends Activity implements OnClickListener, OnGestureListener, OnDoubleTapListener
+{
+	//private static final int INVISIBLE = 0;
+	private int screenWidth;
+	private int screenHeight;
+	private DoubleBuffer buff;
+	private IssmJni issmNative;
+	private String mapName;
+	private String issmFolder;
+	private int size;
+    private GLSurfaceView mGLView;
+	private FrameLayout frame;
+	private ColorMap colorMap;
+	private int friction, temperature;//,sealevel;
+	private final int MINIMUM = 90;
+	private final int OFFSET = 10;
+	private ViewFlipper viewflipper;
+	private ProgressDialog dialog;
+	private ColorBar colorBar;
+	private Velocity velocity;
+	private SliderMenu sliders;
+	private ImageView defaultMap;
+	private GestureDetector mDetector; 
+	private Spinner spinner;
+	private boolean onSimulationScreen = false;
+	//------------------------------------------------------------------------------------------------    
+    @Override
+    public void onCreate(Bundle savedInstanceState)
+    {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main_issm);
+        
+        //Set up a listener for double tap.
+        mDetector = new GestureDetector(this,this);
+        mDetector.setOnDoubleTapListener(this);
+        
+        this.initialize();         
+    }
+  //----------------------------------------------------------------------------------------------
+    private void initialize()
+    {
+    	Bundle map = getIntent().getExtras();
+        {
+        	if(map!= null)
+        	{
+        		issmFolder = map.getString("pathToFile");
+        	}
+        }
+    	friction = MINIMUM + OFFSET;
+    	//temperature = MINIMUM + OFFSET;
+    	//sealevel = MINIMUM + OFFSET;
+    	frame = (FrameLayout)findViewById(R.id.frame);
+    	viewflipper = (ViewFlipper) findViewById(R.id.flipper);
+        //Button solve = (Button) super.findViewById(R.id.solve);
+        //solve.setOnClickListener(this);
+        //Button back = (Button) super.findViewById(R.id.back);
+        //back.setOnClickListener(this);
+        Button play = (Button) super.findViewById(R.id.play);
+        play.setOnClickListener(this);
+        ImageButton gl = (ImageButton) findViewById(R.id.greenland);		
+		gl.setOnClickListener(this);
+		ImageButton art = (ImageButton) findViewById(R.id.antarctica);
+		art.setOnClickListener(this);
+		spinner = (Spinner) super.findViewById(R.id.spinner);
+		sliders= new SliderMenu(this);
+		defaultMap = (ImageView) findViewById(R.id.defaultMap);
+		dialog = new ProgressDialog(this);
+		colorBar = (ColorBar) findViewById(R.id.colorbar);
+        //load up the ISSM library and create double buffer in java
+        //which later on will be pass for native for allocation.
+        issmNative = new IssmJni();
+        velocity = new Velocity();
+        
+        //set default color map to be HSV
+        this.colorMap = new ColorMap();
+        //create colorBar
+        colorBar.setColorMap(colorMap);
+        spinner.setOnItemSelectedListener(new OnItemSelectedListener()
+        {
+			@Override
+			public void onItemSelected(AdapterView<?> arg0, View arg1,
+					int arg2, long arg3) {
+				int item = spinner.getSelectedItemPosition();
+				if( item!= 0)
+				{
+					String color = (String) spinner.getItemAtPosition(item);
+					colorMap.setColor(color);
+					colorBar.setColorMap(colorMap);
+					drawFigure();
+				}
+			}
+
+			@Override
+			public void onNothingSelected(AdapterView<?> arg0) {}
+        });
+            
+        
+        DisplayMetrics dm = new DisplayMetrics();
+        getWindowManager().getDefaultDisplay().getMetrics(dm);
+        screenWidth = dm.widthPixels;
+        screenHeight = dm.heightPixels;
+    }
+//------------------------------------------------------------------------------------------------    
+    public void createModel()
+    {
+		String solution_type="DiagnosticSolution";
+    	String file = "";
+    	if( mapName.equals("greenland"))
+		{
+    		file = "greenland";
+		}
+    	else 
+    	{
+    		file = "antarctica";
+    	}
+
+    	size = issmNative.createISSMModel(solution_type,issmFolder,file);
+    	buff = ByteBuffer.allocateDirect(size*12*8).order(ByteOrder.nativeOrder()).asDoubleBuffer();
+    }
+//------------------------------------------------------------------------------------------------  
+    public boolean onCreateOptionsMenu(Menu menu) 
+    {
+    	MenuInflater menuInflater = getMenuInflater();
+    	menuInflater.inflate(R.menu.issm_menu,menu);
+    	
+    	return true;
+    }
+//---------------------------------------------------------------------------------
+    @Override
+    public boolean onKeyDown(int keyCode, KeyEvent event)  {
+        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 && onSimulationScreen) {
+        	 frame.removeView(mGLView);
+   		 	 viewflipper.setInAnimation(inFromLeftAnimation());
+	         viewflipper.setOutAnimation(outToRightAnimation());
+	         viewflipper.showPrevious(); 
+	         onSimulationScreen = false;
+            return true;
+        }
+        // return to menu screen
+        finish();
+        return super.onKeyDown(keyCode, event);
+    } 
+//---------------------------------------------------------------------------------       
+    @Override 
+    public boolean onTouchEvent(MotionEvent event){ 
+        this.mDetector.onTouchEvent(event);
+        // Be sure to call the superclass implementation
+        return super.onTouchEvent(event);
+    }
+//---------------------------------------------------------------------------------
+    @Override
+    public boolean onDoubleTap(MotionEvent event) {
+    	((MyGLSurfaceView) mGLView).resetZoom();
+        return true;
+    }
+    
+    @Override
+    public boolean onDoubleTapEvent(MotionEvent event) {
+    	
+        return true;
+    }
+    @Override
+    public boolean onDown(MotionEvent event) {  
+        return true;
+    }
+    @Override
+    public boolean onFling(MotionEvent event1, MotionEvent event2, 
+            float velocityX, float velocityY) {
+        return true;
+    }
+
+    @Override
+    public void onLongPress(MotionEvent event) { 
+    }
+
+    @Override
+    public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,float distanceY) 
+    {
+        return true;
+    }
+
+    @Override
+    public void onShowPress(MotionEvent event) 
+    {
+    }
+
+    @Override
+    public boolean onSingleTapUp(MotionEvent event) 
+    {
+        return true;
+    }
+
+    @Override
+    public boolean onSingleTapConfirmed(MotionEvent event) 
+    {
+        return true;
+    }
+//---------------------------------------------------------------------------------   
+    public void onClick(View view) 
+	{
+    	switch(view.getId())
+    	{
+	    	case R.id.greenland:
+			{
+				mapName= "greenland";
+
+				defaultMap.setImageResource(R.drawable.greenland_button);
+				if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+				{
+					defaultMap.setScaleX(1.12f);
+					defaultMap.setScaleY(0.92f);
+					defaultMap.setAlpha(1.0f);
+				}
+				else
+				{
+					defaultMap.setAlpha(1);
+				}
+				colorBar.setVisibility(View.INVISIBLE);
+				viewflipper.setInAnimation(inFromRightAnimation());
+		        viewflipper.setOutAnimation(outToLeftAnimation());
+		        viewflipper.showNext();
+		        defaultMap.setVisibility(View.VISIBLE);
+		        onSimulationScreen = true;
+		        //create FemModel in native code and return the size of the model
+		        this.createModel();
+		        break;
+			}
+	    	case R.id.antarctica:
+			{
+				mapName= "antarctica";
+				defaultMap.setImageResource(R.drawable.antarctica_button);
+				if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+				{
+			        defaultMap.setAlpha(1.0f);
+				}
+				else
+				{
+					defaultMap.setAlpha(1);
+				}
+				colorBar.setVisibility(View.INVISIBLE);
+				viewflipper.setInAnimation(inFromRightAnimation());
+		        viewflipper.setOutAnimation(outToLeftAnimation());
+		        viewflipper.showNext();
+		        defaultMap.setVisibility(View.VISIBLE);
+		        onSimulationScreen = true;
+		        //create FemModel in native code and return the size of the model
+		        this.createModel();
+		        break;
+			}
+			
+	    	/*case R.id.back:
+	    	{
+	    		 frame.removeView(mGLView);
+	    		 viewflipper.setInAnimation(inFromLeftAnimation());
+		         viewflipper.setOutAnimation(outToRightAnimation());
+		         viewflipper.showPrevious(); 
+		         break;
+	    	}*/
+    		/*case R.id.solve:
+    		{
+    			friction = sliders.getFric();
+    			System.out.println(friction);
+    			new CalculationTask().execute(friction);
+    			break;
+    		}*/
+    		case R.id.play:
+    		{
+    			final PopupWindow popupWindow = new PopupWindow( sliders, screenWidth*4/5,screenHeight*2/5, true);
+    			popupWindow.showAtLocation(sliders, Gravity.CENTER, 0, 0);
+    			
+    			Button dismiss = (Button)sliders.findViewById(R.id.exitSetting);
+	            dismiss.setOnClickListener(new Button.OnClickListener()
+	            {
+	            	public void onClick(View v)
+	            	{
+	            		friction = sliders.getFric();
+	            		temperature = sliders.getTemp();
+	    	            //temperature = sliders.getTemp();
+	    	            //sealevel = sliders.getSea();
+	            		popupWindow.dismiss();
+	            		System.out.println("Friction = " + friction );
+	            		new CalculationTask().execute(friction,temperature);
+	            	}
+	            });
+    		}
+    	}
+	}
+//---------------------------------------------------------------------------------- 
+    public void drawFigure()
+    {
+    	frame.removeView(mGLView);
+    	mGLView = new MyGLSurfaceView(this, buff, size, colorMap, velocity);
+    	colorBar.setVelocity(velocity.getVmax(), velocity.getVmin());
+    	colorBar.invalidate();
+    	colorBar.setVisibility(View.VISIBLE);
+    	frame.addView(mGLView);
+    }
+//------------------------------------------------------------------------------------
+   //AsyncTask will allow to display while doing some task in the background
+   private class CalculationTask extends AsyncTask<Integer,Integer,Boolean>
+   {
+		@Override
+		protected Boolean doInBackground(Integer... target) 
+		{
+			Thread thread = new Thread()
+			{
+				public void run()
+				{
+					for(int i = 0; i <= 100; i+=5)
+					{
+						try {
+							Thread.sleep(300);
+						} catch (InterruptedException e) {
+							// TODO Auto-generated catch block
+							e.printStackTrace();
+						}
+						publishProgress(i);
+					}
+				}
+			};
+			thread.start();
+			System.out.println("temperatature = " + target[1]);
+			issmNative.solveISSMModel(target[0],buff);
+			//issmNative.solveISSMModel(target[0],target[1],buff);
+			return true;
+		}
+		
+		protected void onPreExecute()
+		{
+			super.onPostExecute(null);
+			dialog.setCancelable(true);
+			dialog.setMessage("Running ISSM simulation. Please Wait ...");
+			dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
+			dialog.setProgress(0);
+			dialog.setMax(100);
+			dialog.show();
+		}
+		protected void onProgressUpdate(Integer ... value)
+		{
+			super.onProgressUpdate();
+			dialog.setProgress(value[0]);
+			if(value[0] == 100)
+			{
+				dialog.dismiss();
+				if(defaultMap.getDrawable().isVisible() == true )
+					fadeImage();
+			}
+		}
+		protected void onPostExecute(Boolean result)
+		{
+			super.onPostExecute(result);
+			try {
+				Thread.sleep(500);
+			} catch (InterruptedException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			if(result)
+			{ 
+				drawFigure();
+			}
+			
+		}
+	   
+   }
+//-----------------------------------------------------------------------------------    
+   private void fadeImage()
+   {
+	   Animation anim = AnimationUtils.loadAnimation(this, R.anim.fade_out);
+       anim.reset();
+       defaultMap.clearAnimation();
+       defaultMap.startAnimation(anim);
+       defaultMap.setVisibility(View.GONE);
+   }
+    
+    // Below are implementation for the animation between map selection and core computation
+
+	private Animation inFromRightAnimation() {
+
+	Animation inFromRight = new TranslateAnimation(
+	Animation.RELATIVE_TO_PARENT,  +1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
+	Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	inFromRight.setDuration(500);
+	inFromRight.setInterpolator(new AccelerateInterpolator());
+	return inFromRight;
+	}
+	private Animation outToLeftAnimation() {
+	Animation outtoLeft = new TranslateAnimation(
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  -1.0f,
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	outtoLeft.setDuration(500);
+	outtoLeft.setInterpolator(new AccelerateInterpolator());
+	return outtoLeft;
+	}
+
+	private Animation inFromLeftAnimation() {
+	Animation inFromLeft = new TranslateAnimation(
+	Animation.RELATIVE_TO_PARENT,  -1.0f, Animation.RELATIVE_TO_PARENT,  0.0f,
+	Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	inFromLeft.setDuration(500);
+	inFromLeft.setInterpolator(new AccelerateInterpolator());
+	return inFromLeft;
+	}
+	private Animation outToRightAnimation() {
+	Animation outtoRight = new TranslateAnimation(
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,  +1.0f,
+	  Animation.RELATIVE_TO_PARENT,  0.0f, Animation.RELATIVE_TO_PARENT,   0.0f
+	);
+	outtoRight.setDuration(500);
+	outtoRight.setInterpolator(new AccelerateInterpolator());
+	return outtoRight;
+	}
+//-------------------------------------------------------------------------------------------	 
+}
+/////////////////////////////////////////////////////////////////////////////////////////////
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java	(revision 15389)
@@ -0,0 +1,161 @@
+package gov.nasa.jpl.issm;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import android.app.Activity;
+import android.app.ProgressDialog;
+import android.os.AsyncTask;
+import android.os.Bundle;
+import android.os.Environment;
+import android.util.Log;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.Toast;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.content.res.AssetManager;
+/////////////////////////////////////////////////////////////////////////// 
+public class ISSMAPP extends Activity
+{
+	ImageList imageList;
+	private static final String PREFERENCE_FIRST_RUN = null;
+	public static String extStorageDirectory;
+	private String issmFolder; 
+	SharedPreferences settings;
+	private ProgressDialog progressDialog;
+//------------------------------------------------------------------------	
+	public void onCreate(Bundle icicle)
+	{
+		super.onCreate(icicle);
+		setContentView(R.layout.splashscreen);		
+	    settings = this.getSharedPreferences("MenuPage", 0);
+	    boolean firstrun = settings.getBoolean(PREFERENCE_FIRST_RUN, true);
+	    extStorageDirectory = Environment.getExternalStorageDirectory().toString();
+	    issmFolder = extStorageDirectory + "/ISSM/input_files/";
+	    imageList = new ImageList(this);
+	    new CopyDataTask().execute(firstrun);    
+	}
+//-------------------------------------------------------------------------------------------
+	//Start the splashscreen at beginning while transferring 
+	//data file from Assets folder to SDcard
+	private class CopyDataTask extends AsyncTask<Boolean,Void,Boolean>
+	   {
+			@Override
+			protected Boolean doInBackground(Boolean... target) 
+			{
+				imageList.decodeAndResizeImageFromURL();
+				imageList.decodeAndResizeImage();
+				//not sure why, but target[0] can be true on install! more to be done.
+				//if(target[0] = false)
+				//{
+			        SharedPreferences.Editor e = settings.edit();
+			        e.putBoolean(PREFERENCE_FIRST_RUN, false);
+			        
+			        e.commit();
+			        // If not, run these methods:
+			        SetDirectory(issmFolder);
+				//}
+				return true;
+			}
+			@Override
+			protected void onPreExecute()
+			{
+				progressDialog = new ProgressDialog(ISSMAPP.this);
+				progressDialog.setMessage("Loading Data");
+				progressDialog.setIndeterminate(true);
+				progressDialog.setCancelable(false);
+				progressDialog.show();
+			}
+			protected void onPostExecute(Boolean result)
+			{
+				progressDialog.dismiss();
+				Intent i = new Intent(ISSMAPP.this, MenuPage.class);
+				i.putExtra("pathToFile", issmFolder);
+		        startActivity(i);
+			}
+	   }
+//-------------------------------------------------------------------------------------------
+	private void SetDirectory(String directory) 
+	{
+	    if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) 
+	    {
+	        File txtDirectory = new File(issmFolder);
+	        
+	        // Check and create directory in SDcard
+	        if(!txtDirectory.exists())
+	        {
+	        	txtDirectory.mkdirs();
+	        }
+	        CopyAssets(); // Then run the method to copy the file.
+
+	    } 
+	    else if (android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED_READ_ONLY)) 
+	    {
+	    	Toast toast = Toast.makeText(this.getApplicationContext(), "Memory is not mounted to device", Toast.LENGTH_LONG);
+	    	toast.show();
+	    }
+
+	}
+//----------------------------------------------------------------------------
+	/**
+	 * -- Copy the file from the assets folder to the sdCard
+	 * ===========================================================
+	 **/
+		private void CopyAssets() 
+		{
+		    AssetManager assetManager = getAssets();
+		    String[] files = null;
+		    try {
+		        files = assetManager.list("Map");
+		    } catch (IOException e) {
+		        Log.e("tag", e.getMessage());
+		    }
+		    for (int i = 0; i < files.length; i++) {
+		        InputStream in = null;
+		        OutputStream out = null;
+		        try {
+		            in = assetManager.open("Map/"+files[i]);
+		            out = new FileOutputStream(issmFolder + files[i]);
+		            copyFile(in, out);
+		            in.close();
+		            in = null;
+		            out.flush();
+		            out.close();
+		            out = null;
+		        } catch (Exception e) {
+		            Log.e("tag", e.getMessage());
+		        }
+		    }
+		}
+//----------------------------------------------------------------------------
+		private void copyFile(InputStream in, OutputStream out) throws IOException 
+		{
+		    byte[] buffer = new byte[1024];
+		    int read;
+		    while ((read = in.read(buffer)) != -1) {
+		        out.write(buffer, 0, read);
+		    }
+		}
+//----------------------------------------------------------------------------
+		 private void StartAnimations() 
+		 {
+		        Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha);
+		        anim.reset();
+		        LinearLayout l=(LinearLayout) findViewById(R.id.lin_lay);
+		        l.clearAnimation();
+		        l.startAnimation(anim);
+		 
+		        anim = AnimationUtils.loadAnimation(this, R.anim.translate);
+		        anim.reset();
+		        ImageView iv = (ImageView) findViewById(R.id.logo);
+		        iv.clearAnimation();
+		        iv.startAnimation(anim);
+		    }
+//-------------------------------------------------------------------------------		 
+}
+////////////////////////////////////////////////////////////////////////////////// 
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java	(revision 15389)
@@ -0,0 +1,73 @@
+package gov.nasa.jpl.issm;
+
+import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.util.Log;
+
+public class ImageList 
+{
+	private static ArrayList <Bitmap> imageList;
+	private static ArrayList <Bitmap> imageListFromURL;
+	private Context context;
+	final int nImage = 17; 
+//----------------------------------------------------------	
+	public ImageList(Context context)
+	{
+		imageList = new ArrayList <Bitmap>();
+		imageListFromURL = new ArrayList <Bitmap>();
+		this.context = context;
+	}
+//----------------------------------------------------------
+	public void decodeAndResizeImageFromURL()
+	{
+		URL url;
+		for(int i =0; i <1; i++)
+		{
+			try 
+			{
+				url = new URL(ImageListFromUrl.imageUrls[0]);
+				URLConnection connection = url.openConnection();
+				HttpURLConnection httpConnection = (HttpURLConnection) connection;
+	            httpConnection.setRequestMethod("GET");
+	            httpConnection.connect();
+	 
+	            if (httpConnection.getResponseCode() == HttpURLConnection.HTTP_OK) 
+	            {
+	            	imageList.add(ImageResizer.decodeSampledBitmapFromURL(url, 50, 50)); 
+	            }
+		    } catch (IOException e) {
+		        Log.e("ImageResizer", "Could not load Bitmap from: " + ImageListFromUrl.imageUrls[i]);
+		    }
+		}
+	}
+//----------------------------------------------------------
+	public void decodeAndResizeImage()
+	{
+		int resID;
+		for(int i = 1 ; i < nImage; i++)
+		{
+			resID=context.getResources().getIdentifier("image"+i, "drawable", context.getPackageName());
+			imageList.add(ImageResizer.decodeSampledBitmapFromResource(context.getResources(), resID , 50, 50));
+		}
+	}
+//----------------------------------------------------------
+	public static ArrayList<Bitmap> getImageList()
+	{
+		return imageList;
+	}
+//----------------------------------------------------------
+		public static ArrayList<Bitmap> getImageListFromURL()
+		{
+			return imageListFromURL;
+		}	
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageListFromUrl.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageListFromUrl.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageListFromUrl.java	(revision 15389)
@@ -0,0 +1,8 @@
+package gov.nasa.jpl.issm;
+
+public class ImageListFromUrl {
+	public static String[] imageUrls = new String[]
+	{
+		"http://www.csupomona.edu/~lannguyen/image0.png"
+	};
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java	(revision 15389)
@@ -0,0 +1,75 @@
+package gov.nasa.jpl.issm;
+
+import java.io.IOException;
+import java.net.URL;
+
+import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
+import android.util.Log;
+
+public class ImageResizer {
+	
+	public static Bitmap decodeSampledBitmapFromURL(URL url , int reqWidth, int reqHeight) {
+
+        // First decode with inJustDecodeBounds=true to check dimensions
+        final BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inJustDecodeBounds = true;
+        try
+        {
+	        BitmapFactory.decodeStream(url.openConnection().getInputStream(),null, options);
+	   	
+	        // Calculate inSampleSize
+	        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
+	
+	        // Decode bitmap with inSampleSize set
+	        options.inJustDecodeBounds = false;
+	        return BitmapFactory.decodeStream(url.openConnection().getInputStream(), null, options);
+        }
+        catch (IOException e) {
+	        Log.e("Error", "Could not load Bitmap from: " + url.toString());
+	    }
+        return null;
+    }
+	
+	public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
+            int reqWidth, int reqHeight) {
+
+        // First decode with inJustDecodeBounds=true to check dimensions
+        final BitmapFactory.Options options = new BitmapFactory.Options();
+        options.inJustDecodeBounds = true;
+        BitmapFactory.decodeResource(res, resId, options);
+   	
+        // Calculate inSampleSize
+        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
+
+        // Decode bitmap with inSampleSize set
+        options.inJustDecodeBounds = false;
+        return BitmapFactory.decodeResource(res, resId, options);
+    }
+    
+    public static int calculateInSampleSize(
+            BitmapFactory.Options options, int reqWidth, int reqHeight) 
+    {
+	    // Raw height and width of image
+	    int height = options.outHeight;
+	    int width = options.outWidth;
+	    int inSampleSize = 1;
+	    
+    	if (height > reqHeight || width > reqWidth) {
+
+            // Calculate ratios of height and width to requested height and width
+            final int heightRatio = Math.round((float) height / (float) reqHeight);
+            final int widthRatio = Math.round((float) width / (float) reqWidth);
+
+            // Choose the smallest ratio as inSampleSize value, this will guarantee
+            // a final image with both dimensions larger than or equal to the
+            // requested height and width.
+            inSampleSize = heightRatio > widthRatio ? heightRatio : widthRatio;
+        }
+
+        return inSampleSize;
+
+    }
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/IssmJni.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/IssmJni.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/IssmJni.java	(revision 15389)
@@ -0,0 +1,13 @@
+package gov.nasa.jpl.issm;
+import java.nio.DoubleBuffer;
+
+class IssmJni
+{
+	public native void solveISSMModel(double alpha, DoubleBuffer buff);
+	public native void solveISSMModel(double alpha, double temperature, DoubleBuffer buff);
+	public native int createISSMModel(String solution_type, String absfile, String relfile);
+	static 
+	{
+        System.loadLibrary("IssmJni");
+    }
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java	(revision 15389)
@@ -0,0 +1,117 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.content.DialogInterface;
+import android.content.Intent;
+
+/////////////////////////////////////////////////////////////////////////// 
+public class MenuPage extends Activity
+{
+	ISSM issm = new ISSM();
+	//GalleryImage gallery = new GalleryImage();
+	private String issmFolder; 
+//------------------------------------------------------------------------	
+	public void onCreate(Bundle icicle)
+	{
+		super.onCreate(icicle);
+		setContentView(R.layout.menupage);		
+		Bundle map = getIntent().getExtras();
+        {
+        	if(map!= null)
+        	{
+        		issmFolder = map.getString("pathToFile");
+        	}
+        }
+        //start the core implementation of ISSM
+	    Button start = (Button) findViewById(R.id.start);		
+		start.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				Intent i = new Intent(MenuPage.this, ISSM.class);
+				i.putExtra("pathToFile", issmFolder);
+		        startActivity(i);
+			}
+		});
+		// navigate to youtube video
+		Button video = (Button) findViewById(R.id.video);		
+		video.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				//String url = "http://www.youtube.com/watch?v=KlDO0C8r_ws";
+				//Intent i = new Intent(Intent.ACTION_VIEW);
+				//i.setData(Uri.parse(url));
+				Intent i = new Intent(MenuPage.this, VideoActivity.class);
+		        startActivity(i);
+			}
+		});
+		// pop up a text box that contains information about ISSM
+		final Button intro = (Button) findViewById(R.id.intro);	
+		intro.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v)
+			{
+				//LayoutInflater layoutInflater = (LayoutInflater)getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);  
+				//View popupView = layoutInflater.inflate(R.layout.popuptext, null);  
+				//final PopupWindow popupWindow = new PopupWindow( popupView, 400,600, true);
+				//popupWindow.showAtLocation(popupView, Gravity.CENTER, 0, 0);
+				//Button dismiss = (Button)popupView.findViewById(R.id.dismiss);
+	            //dismiss.setOnClickListener(new Button.OnClickListener()
+	            //{
+	            	//public void onClick(View v)
+	            //	{
+	            		//popupWindow.dismiss();
+	            	//}
+	            //});
+				Intent i = new Intent(MenuPage.this, AboutActivity.class);
+		        startActivity(i);
+			}
+		});
+		//Show Team Website
+		Button visitus = (Button) findViewById(R.id.visitus);		
+		visitus.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				//String url = "http://issm.jpl.nasa.gov/";
+				//Intent i = new Intent(Intent.ACTION_VIEW);
+				//i.setData(Uri.parse(url));
+		        //startActivity(i);
+				
+				Intent i = new Intent(MenuPage.this, TeamActivity.class);
+		        startActivity(i);
+			}
+		});
+		//start gallery image 
+	    Button galleryImage = (Button) findViewById(R.id.galleryimage);		
+	    galleryImage.setOnClickListener(new View.OnClickListener() 
+		{
+			public void onClick(View v) 
+			{
+				Intent i = new Intent(MenuPage.this, GalleryImage.class);
+		        startActivity(i);
+			}
+		});
+	}
+//-------------------------------------------------------------------------------------
+	
+	 @Override
+     public void onBackPressed() {
+         new AlertDialog.Builder(this)
+                .setMessage("Are you sure you want to exit?")
+                .setCancelable(false)
+                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
+                    public void onClick(DialogInterface dialog, int id) {
+                    	MenuPage.this.finish();
+                    }
+                })
+                .setNegativeButton("No", null)
+                .show();
+     }
+}
+///////////////////////////////////////////////////////////////////////////////////////// 
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLRenderer.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLRenderer.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLRenderer.java	(revision 15389)
@@ -0,0 +1,345 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package gov.nasa.jpl.issm;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.FloatBuffer;
+
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
+import android.opengl.GLES20;
+import android.opengl.GLSurfaceView;
+import android.opengl.Matrix;
+
+public class MyGLRenderer implements GLSurfaceView.Renderer 
+{
+	public volatile float mAngle;
+	public volatile float mAngleX; /* NEW STUFF*/
+	public volatile float mAngleY;
+	
+	
+    private FloatBuffer[] triangleVert;
+	
+	private float[][] mScaleMatrix;  // scaling /* NEW STUFF*/
+	private float[][] mRotXMatrix;	 // rotation x 
+	private float[][] mRotYMatrix;	 // rotation x
+
+	/**
+	 * Store the model matrix. This matrix is used to move models from object space (where each model can be thought
+	 * of being located at the center of the universe) to world space.
+	 */
+	private float[][] mModelMatrix;
+	
+	/**
+	 * Store the view matrix. This can be thought of as our camera. This matrix transforms world space to eye space;
+	 * it positions things relative to our eye.
+	 */
+	private float[][] mViewMatrix;
+
+	/** Store the projection matrix. This is used to project the scene onto a 2D viewport. */
+	private float[][] mProjectionMatrix;
+
+	/** Allocate storage for the final combined matrix. This will be passed into the shader program. */
+	private float[][] mMVPMatrix;
+
+	/** This will be used to pass in the transformation matrix. */
+	private int mMatrixHandle;
+	
+    private float[][] triangleData2DArr;
+    
+    private int mPositionHandle;
+    
+    private int mColorHandle;
+    
+	/** How many bytes per float. */
+    private final int mBytesPerFloat = 4;
+
+    /** How many elements per vertex. */
+    private final int mStrideBytes = 7 * mBytesPerFloat;
+
+    /** Offset of the position data. */
+    private final int mPositionOffset = 0;
+
+    /** Size of the position data in elements. */
+    private final int mPositionDataSize = 3;
+
+    /** Offset of the color data. */
+    private final int mColorOffset = 3;
+
+    /** Size of the color data in elements. */
+    private final int mColorDataSize = 4;	
+
+	float scaleX = 1.0f;
+	float scaleY = 1.0f;
+	float scaleZ = 1.0f;
+
+	public float eyeX;
+	public float eyeY;
+	public float eyeZ;
+	
+    public MyGLRenderer(float[][] vertices)
+    {	
+    	triangleData2DArr = new float[vertices.length][21];
+ 
+    	triangleVert = new FloatBuffer[vertices.length];
+    	mScaleMatrix  = new float[triangleVert.length][16];  // scaling  
+    	mRotXMatrix  = new float[triangleVert.length][16];	 // rotation x
+    	mRotYMatrix  = new float[triangleVert.length][16];	 // rotation x
+    	
+    	for (int i = 0; i < vertices.length; i++)
+    	{
+    		for (int j = 0; j < 21; j++)
+    			triangleData2DArr[i][j] = vertices[i][j]; 
+    	}
+	    
+	    // initialize vertex byte buffer for shape coordinates
+    	for (int i = 0; i < vertices.length; i++)
+    	{
+    		triangleVert[i] = ByteBuffer.allocateDirect(triangleData2DArr[i].length * mBytesPerFloat)
+    													.order(ByteOrder.nativeOrder()).asFloatBuffer();
+    		triangleVert[i].put(triangleData2DArr[i]).position(0);
+    	}
+    }
+    
+	public void changeScale(float scale)
+	{
+		if (scaleX * scale > 3.0f) return;
+		  scaleX *= scale; scaleY *= scale; scaleZ *= scale;
+		
+	}
+
+	public void defaultScale() 
+	{
+		scaleX = 1f;
+		scaleY = 1f;
+		scaleZ = 1f;
+	}
+	
+    public void onSurfaceCreated(GL10 unused, EGLConfig config) 
+    {
+        // Set the background frame color
+        GLES20.glClearColor(0.2f, 0.4f, 1.0f, 1.0f);
+        
+		// Position the eye behind the origin.
+		eyeX = 0.0f;
+		eyeY = 0.0f;
+		eyeZ = 1.5f;
+
+		// We are looking toward the distance
+		final float lookX = 0.0f;
+		final float lookY = 0.0f;
+		final float lookZ = -5.0f;
+
+		// Set our up vector. This is where our head would be pointing were we holding the camera.
+		final float upX = 0.0f;
+		final float upY = 1.0f;
+		final float upZ = 0.0f;
+
+		// Set the view matrix. This matrix can be said to represent the camera position.
+		// NOTE: In OpenGL 1, a ModelView matrix is used, which is a combination of a model and
+		// view matrix. In OpenGL 2, we can keep track of these matrices separately if we choose.
+		mViewMatrix = new float[triangleVert.length][16];
+		
+		
+		for (int i = 0; i < triangleVert.length; i++)
+			Matrix.setLookAtM(mViewMatrix[i], 0, eyeX, eyeY, eyeZ, lookX, lookY, lookZ, upX, upY, upZ);
+			//Matrix.setLookAtM(mVMatrix[i], 0, 0, 0, -5.0f, 0.0f, 0f, 0f, 0f, 1.0f, 0.0f);
+        
+		final String vertexShader =
+				"uniform mat4 u_MVPMatrix;      \n"		// A constant representing the combined model/view/projection matrix.
+			  + "attribute vec4 a_Position;     \n"		// Per-vertex position information we will pass in.
+			  + "attribute vec4 a_Color;        \n"		// Per-vertex color information we will pass in.			  
+			  + "varying vec4 v_Color;          \n"		// This will be passed into the fragment shader.
+			  + "void main()                    \n"		// The entry point for our vertex shader.
+			  + "{                              \n"
+			  + "   v_Color = a_Color;          \n"		// Pass the color through to the fragment shader. 
+			  
+			  											// It will be interpolated across the triangle.
+			  + "   gl_Position = u_MVPMatrix   \n" 	// gl_Position is a special variable used to store the final position.
+			  + "               * a_Position;   \n"     // Multiply the vertex by the matrix to get the final point in 			                                            			 
+			  + "}                              \n";    // normalized screen coordinates.
+
+			final String fragmentShader =
+				"precision mediump float;       \n"		// Set the default precision to medium. We don't need as high of a											// precision in the fragment shader.				
+			  + "varying vec4 v_Color;          \n"		// This is the color from the vertex shader interpolated across the 
+			  											// triangle per fragment.			  
+			  + "void main()                    \n"		// The entry point for our fragment shader.
+			  + "{                              \n"
+			  + "   gl_FragColor = v_Color;     \n"		// Pass the color directly through the pipeline.		  
+			  + "}                              \n";												
+
+    	   
+        int vertexShaderHandle = GLES20.glCreateShader(GLES20.GL_VERTEX_SHADER);
+		// Pass in the shader source.
+		GLES20.glShaderSource(vertexShaderHandle, vertexShader);
+
+		// Compile the shader.
+		GLES20.glCompileShader(vertexShaderHandle);
+
+		// Get the compilation status.
+		final int[] compileStatus1 = new int[1];
+		GLES20.glGetShaderiv(vertexShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus1, 0);
+
+		// If the compilation failed, delete the shader.
+		if (compileStatus1[0] == 0) 
+		{				
+			GLES20.glDeleteShader(vertexShaderHandle);
+			vertexShaderHandle = 0;
+		}
+		
+         
+    	int fragmentShaderHandle = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
+		// Pass in the shader source.
+		GLES20.glShaderSource(fragmentShaderHandle, fragmentShader);
+
+		// Compile the shader.
+		GLES20.glCompileShader(fragmentShaderHandle);
+
+		// Get the compilation status.
+		final int[] compileStatus2 = new int[1];
+		GLES20.glGetShaderiv(fragmentShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus2, 0);
+
+		// If the compilation failed, delete the shader.
+		if (compileStatus2[0] == 0) 
+		{				
+			GLES20.glDeleteShader(fragmentShaderHandle);
+			fragmentShaderHandle = 0;
+		}
+
+        
+        int mProgram = GLES20.glCreateProgram();
+		// Bind the vertex shader to the program.
+		GLES20.glAttachShader(mProgram, vertexShaderHandle);			
+
+		// Bind the fragment shader to the program.
+		GLES20.glAttachShader(mProgram, fragmentShaderHandle);
+
+		// Bind attributes
+		GLES20.glBindAttribLocation(mProgram, 0, "a_Position");
+		GLES20.glBindAttribLocation(mProgram, 1, "a_Color");
+		
+		// Link the two shaders together into a program.
+		GLES20.glLinkProgram(mProgram);
+
+		// Get the link status.
+		final int[] linkStatus = new int[1];
+		GLES20.glGetProgramiv(mProgram, GLES20.GL_LINK_STATUS, linkStatus, 0);
+
+		// If the link failed, delete the program.
+		if (linkStatus[0] == 0) 
+		{				
+			GLES20.glDeleteProgram(mProgram);
+			mProgram = 0;
+		}
+		
+		for (int i = 0; i < triangleVert.length; i++)
+		{
+			mMatrixHandle = GLES20.glGetUniformLocation(mProgram, "u_MVPMatrix");       
+	        mPositionHandle = GLES20.glGetAttribLocation(mProgram, "a_Position");
+	        mColorHandle = GLES20.glGetAttribLocation(mProgram, "a_Color");
+		}
+        
+        // Add program to OpenGL environment
+        GLES20.glUseProgram(mProgram);
+    }
+    public void onSurfaceChanged(GL10 unused, int width, int height) 
+    {
+        // Adjust the viewport based on geometry changes,
+        // such as screen rotation
+        GLES20.glViewport(0, 0, width, height);
+        
+		// Create a new perspective projection matrix. The height will stay the same
+		// while the width will vary as per aspect ratio.
+		final float ratio = (float) width / height;
+		
+		mProjectionMatrix = new float[triangleVert.length][16];
+		for (int i = 0; i < triangleVert.length; i++)
+			Matrix.frustumM(mProjectionMatrix[i], 0, -ratio, ratio, -1, 1, 1f, 5);
+			
+    }
+    
+    public void onDrawFrame(GL10 glUnused) 
+    {
+    	// Draw background color
+    	GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
+    	
+    	mModelMatrix = new float[triangleVert.length][16];
+        // Draw the triangle facing straight on.
+    	for (int i = 0; i < triangleVert.length; i++)
+    	{
+    		Matrix.setIdentityM(mScaleMatrix[i], 0);
+    		Matrix.scaleM(mScaleMatrix[i], 0, scaleX, scaleY, scaleZ);
+    		
+    		// Rotation along x
+    		Matrix.setRotateM(mRotXMatrix[i], 0, this.mAngleY, -1.0f, 0.0f, 0.0f);
+    		Matrix.setRotateM(mRotYMatrix[i], 0, this.mAngleX, 0.0f, 1.0f, 0.0f);
+    		
+    		Matrix.setLookAtM(mViewMatrix[i], 0, eyeX, eyeY, eyeZ, 0.0f, 0.0f, -5.0f, 0.0f, 1.0f, 0.0f); 
+    	
+    	}
+    		
+    	mMVPMatrix = new float[triangleVert.length][16];
+    	draw(triangleVert); 
+
+    }
+
+    private void draw(final FloatBuffer[] aTriangleBuffer)
+    {
+    	for (int i = 0; i < aTriangleBuffer.length; i++)
+    	{
+	        // Pass in the position information
+	        aTriangleBuffer[i].position(mPositionOffset);
+	        GLES20.glVertexAttribPointer(mPositionHandle, mPositionDataSize, GLES20.GL_FLOAT, false,
+	                				     mStrideBytes, aTriangleBuffer[i]);
+	        
+	        GLES20.glEnableVertexAttribArray(mPositionHandle);
+	     
+	        
+	        // Pass in the color information
+	        aTriangleBuffer[i].position(mColorOffset);
+	        GLES20.glVertexAttribPointer(mColorHandle, mColorDataSize, GLES20.GL_FLOAT, false,
+	                					 mStrideBytes, aTriangleBuffer[i]);
+	        
+	        GLES20.glEnableVertexAttribArray(mColorHandle);
+	        
+	        Matrix.setRotateM(mRotXMatrix[i], 0, this.mAngleY, -1.0f, 0.0f, 0.0f); 
+    		Matrix.setRotateM(mRotYMatrix[i], 0, this.mAngleX, 0.0f, 1.0f, 0.0f);
+
+    		float tempMatrix[][] = new float[triangleVert.length][16]; 
+    		Matrix.multiplyMM(tempMatrix[i], 0, mRotYMatrix[i], 0, mRotXMatrix[i], 0);
+    		Matrix.multiplyMM(mModelMatrix[i], 0, mScaleMatrix[i], 0, tempMatrix[i], 0);
+
+			// This multiplies the view matrix by the model matrix, and stores the result in the MVP matrix
+	        // (which currently contains model * view).
+	        Matrix.multiplyMM(mMVPMatrix[i], 0, mViewMatrix[i], 0, mModelMatrix[i], 0);
+	        
+	        // This multiplies the modelview matrix by the projection matrix, and stores the result in the MVP matrix
+	        // (which now contains model * view * projection).
+	        Matrix.multiplyMM(mMVPMatrix[i], 0, mProjectionMatrix[i], 0, mMVPMatrix[i], 0);
+	        
+	        GLES20.glUniformMatrix4fv(mMatrixHandle, 1, false, mMVPMatrix[i], 0);   
+
+	        // Draw the triangle
+	        GLES20.glDrawArrays(GLES20.GL_TRIANGLES, 0, 3);
+	        
+	        // Disable vertex array
+	        GLES20.glDisableVertexAttribArray(mPositionHandle);
+    	}
+    }
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLSurfaceView.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLSurfaceView.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLSurfaceView.java	(revision 15389)
@@ -0,0 +1,247 @@
+package gov.nasa.jpl.issm;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.nio.DoubleBuffer;
+import android.content.Context;
+import android.opengl.GLSurfaceView;
+import android.util.FloatMath;
+import android.view.MotionEvent;
+
+
+public class MyGLSurfaceView extends GLSurfaceView 
+{
+	private MyGLRenderer mRend;
+	private DoubleBuffer db;
+	private int size;
+	double vmax = 0, vmin=0;
+	final int firstVelocity = 9; 
+	ColorMap colorMap;
+	Velocity velocity;
+	// pinch to zoom
+	float oldDist = 100.0f;
+	float newDist;
+	
+	int mode = 0;
+    public MyGLSurfaceView(Context context, DoubleBuffer db, int size, ColorMap colorMap, Velocity velocity) 
+    {
+        super(context);
+        // Create an OpenGL ES 2.0 context.
+        setEGLContextClientVersion(2);
+        this.db = db;
+        this.size = size;
+        this.colorMap = colorMap;
+        this.velocity = velocity;
+        vmin = db.get(firstVelocity);
+        findMinMaxVelocity(); 
+        intialize();
+        this.velocity.setVmin(vmin);
+        this.velocity.setVmax(vmax);
+    }
+    private void intialize()
+    {
+        final int MAX_VERTICES = 21;
+        float f[][] = new float[size][MAX_VERTICES];
+        //indexes prefer to velocity at each vertices of triangles.
+        double alpha1, alpha2, alpha3;
+		float  xmin,xmax,ymin,ymax;
+        final double XSCALE_FACTOR = 1;
+        final double YSCALE_FACTOR = 1.2;
+        RGB rgb = new RGB();
+
+		for (int i = 0; i < size; i++) {
+				f[i][0] = (float)db.get(12*i+0);
+				f[i][1] = (float)db.get(12*i+1);
+				f[i][2] = (float)db.get(12*i+2);
+				f[i][7] = (float)db.get(12*i+3);
+				f[i][8] = (float)db.get(12*i+4);
+				f[i][9] = (float)db.get(12*i+5);
+				f[i][14] = (float)db.get(12*i+6);
+				f[i][15] = (float)db.get(12*i+7);
+				f[i][16] = (float)db.get(12*i+8);
+				
+				f[i][6] = 1.0f;
+				f[i][13] = 1.0f;
+				f[i][20] = 1.0f;
+				
+				alpha1 = getAlphaColor(db.get(12*i+9));
+				alpha2 = getAlphaColor(db.get(12*i+10));
+				alpha3 = getAlphaColor(db.get(12*i+11));
+				
+				colorMap.getRGB(alpha1, rgb);
+				float r1 = rgb.getR();
+				float g1 = rgb.getG();
+				float b1 = rgb.getB();
+				
+				colorMap.getRGB(alpha2, rgb);
+				float r2 = rgb.getR();
+				float g2 = rgb.getG();
+				float b2 = rgb.getB();
+				
+				colorMap.getRGB(alpha3, rgb);
+				float r3 = rgb.getR();
+				float g3 = rgb.getG();
+				float b3 = rgb.getB();
+				
+				
+				f[i][3] = r1;
+				f[i][4] = g1;
+				f[i][5] = b1;
+				
+				f[i][10] = r2;
+				f[i][11] = g2;
+				f[i][12] = b2;
+				
+				f[i][17] = r3;
+				f[i][18] = g3;
+				f[i][19] = b3;
+
+		}
+
+	
+		xmin=0; ymin=0; xmax=0; ymax=0;
+
+		for (int i = 0; i < size; i++) {
+			if (f[i][0]<xmin) xmin=f[i][0];
+			if (f[i][0]>xmax) xmax=f[i][0];
+
+			if (f[i][1]<ymin) ymin=f[i][1];
+			if (f[i][1]>ymax) ymax=f[i][1];
+		}
+				
+		for (int i = 0; i < size; i++) {
+				f[i][0] =  (float)XSCALE_FACTOR*2*(f[i][0]-xmin)/(xmax-xmin)-1;
+				f[i][1] =  (float)YSCALE_FACTOR*2*(f[i][1]-ymin)/(ymax-ymin)-1;
+				f[i][7] =  (float)XSCALE_FACTOR*2*(f[i][7]-xmin)/(xmax-xmin)-1;
+				f[i][8] =  (float)YSCALE_FACTOR*2*(f[i][8]-ymin)/(ymax-ymin)-1;
+				f[i][14] =  (float)XSCALE_FACTOR*2*(f[i][14]-xmin)/(xmax-xmin)-1;
+				f[i][15] =  (float)YSCALE_FACTOR*2*(f[i][15]-ymin)/(ymax-ymin)-1;
+		}
+				
+		File file1 = new File(ISSMAPP.extStorageDirectory + "/ISSM/input_files/coordinate.txt");
+		File file2 = new File(ISSMAPP.extStorageDirectory + "/ISSM/input_files/color.txt");
+		try {
+			file1.createNewFile();
+			file2.createNewFile();
+			FileOutputStream fout1 = new FileOutputStream(file1);
+			OutputStreamWriter write1 = new OutputStreamWriter(fout1);
+			FileOutputStream fout2 = new FileOutputStream(file2);
+			OutputStreamWriter write2 = new OutputStreamWriter(fout2);
+			for(int i = 0; i < size; i ++)
+			{
+				write1.append(f[i][0]+","+f[i][1]+","+f[i][2]+","+f[i][7]+","+f[i][8]+","+f[i][9]+","+f[i][14]+","+f[i][15]+","+f[i][16]+"\n");
+				write2.append(f[i][3]+","+f[i][4]+","+f[i][5]+","+f[i][10]+","+f[i][11]+","+f[i][12]+","+f[i][17]+","+f[i][18]+","+f[i][19]+"\n");
+			}
+			write1.close();
+			write2.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		
+    	mRend = new MyGLRenderer(f);
+    	// Set the Renderer for drawing on the GLSurfaceView
+        setRenderer(mRend);
+
+        // Render the view only when there is a change in the drawing data
+        setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
+    }
+    private void findMinMaxVelocity()
+    {
+    	for(int i = 0; i < size*12; i++)
+    	{
+    		if(i%12==9 || i%12==10 ||i%12==11 )
+    		{
+    			if (db.get(i) <  vmin) vmin = db.get(i);
+    			if (db.get(i) >= vmax) vmax = db.get(i);
+    		}
+    		else continue; 
+    	}
+    	
+    }  
+    private double getAlphaColor(double velocity)
+    {
+    	return (velocity-vmin)/(vmax-vmin);
+    }
+    
+    private final float TOUCH_SCALE_FACTOR = 180.0f / 320;
+    private float mPreviousX;
+    
+    private float mPreviousY;
+ // touch events
+ 	private final int NONE = 0;
+ 	private final int DRAG = 0;
+ 	private final int ZOOM = 0;
+    @Override
+    public boolean onTouchEvent(MotionEvent e) /* NEW STUFF*/
+	{
+		float x = e.getX();
+		float y = e.getY();
+		switch (e.getAction()) {
+			case MotionEvent.ACTION_DOWN:			// one touch: drag
+		      mode = DRAG;
+		      //mRend.eyeX = e.getX();
+		      //mRend.eyeY = e.getY();
+		      break;
+		      
+			case MotionEvent.ACTION_POINTER_DOWN:	// two touches: zoom
+				oldDist = spacing(e);
+				if (oldDist > 10.0f) 
+					mode = ZOOM; // zoom
+				break;
+				
+			case MotionEvent.ACTION_UP:		// no mode
+				mode = NONE;
+				oldDist = 100.0f;
+				break;
+				
+			case MotionEvent.ACTION_POINTER_UP:		// no mode
+				mode = NONE;
+				oldDist = 100.0f;
+				break;
+				
+			case MotionEvent.ACTION_MOVE:						// rotation
+				if (e.getPointerCount() > 1 && mode == ZOOM) 
+				{
+					newDist = spacing(e);
+					if (newDist > 10.0f) {
+						float scale = newDist/oldDist; // scale
+						
+						// scale in the renderer
+						mRend.changeScale(scale);
+						oldDist = newDist;
+					}
+				}
+				else if (mode == DRAG)
+				{
+					float dx = x - mPreviousX;
+					float dy = y - mPreviousY;
+					
+					mRend.mAngleX += dx * TOUCH_SCALE_FACTOR;
+					mRend.mAngleY += dy * TOUCH_SCALE_FACTOR;
+
+					requestRender();
+				}
+				break;
+		}
+		mPreviousX = x;
+		mPreviousY = y;
+		return true;
+	}
+	
+	private float spacing(MotionEvent event) /* NEW STUFF*/
+	{
+		float x = event.getX(0) - event.getX(1);
+		float y = event.getY(0) - event.getY(1);
+		return FloatMath.sqrt(x * x + y * y);
+	}
+	
+	public void resetZoom()
+	{
+		mRend.defaultScale();
+	}
+	
+}
+
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyWebViewClient.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyWebViewClient.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyWebViewClient.java	(revision 15389)
@@ -0,0 +1,16 @@
+package gov.nasa.jpl.issm;
+
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+public class MyWebViewClient extends WebViewClient {
+	
+	@Override
+    public boolean shouldOverrideUrlLoading(WebView view, String url) {
+        
+            // This is my web site, so do not override; let my WebView load the page
+            return false;
+    
+    }
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SliderMenu.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SliderMenu.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SliderMenu.java	(revision 15389)
@@ -0,0 +1,98 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.RelativeLayout;
+import android.widget.SeekBar;
+import android.widget.TextView;
+import android.widget.SeekBar.OnSeekBarChangeListener;
+
+public class SliderMenu extends RelativeLayout{
+
+	private SeekBar frictionBar;
+	private SeekBar tempBar;
+	private SeekBar seaLevelBar;
+	private TextView fric, temp, sealvl;
+	private int friction, temperature, sealevel;
+	final int OFFSET = 10;
+	final int MINIMUM = 90;
+	View view;
+	public SliderMenu(Context context) {
+		super(context);
+		LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+		if( mInflater != null)
+		{
+			view = mInflater.inflate(R.layout.settingsmenu, this, true);
+		}
+		initialize();
+	}
+	public void initialize()
+	{
+		frictionBar = (SeekBar) this.findViewById(R.id.frictionBar);
+		tempBar = (SeekBar) this.findViewById(R.id.tempBar);
+		seaLevelBar = (SeekBar) this.findViewById(R.id.sealvlBar);
+		fric = (TextView) this.findViewById(R.id.fric);
+    	temp  = (TextView) this.findViewById(R.id.temp);
+    	sealvl   = (TextView) this.findViewById(R.id.sealvl);
+    	//tempBar.setVisibility(INVISIBLE);
+    	seaLevelBar.setVisibility(INVISIBLE);
+    	//temp.setVisibility(INVISIBLE);
+    	sealvl.setVisibility(INVISIBLE);
+    	friction = MINIMUM + OFFSET;
+    	temperature = MINIMUM + OFFSET;
+    	sealevel = MINIMUM + OFFSET;
+    	setListenner();
+	}
+	private void setListenner()
+	{
+		frictionBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+                		
+                        friction = progress + OFFSET;
+                        fric.setText("Friction: " + friction + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+        tempBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+	                	
+                        temperature = progress + OFFSET;
+                        temp.setText("Temperature: " + temperature + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+        seaLevelBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
+        {
+                public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser)
+                {
+	                	
+                        sealevel = progress + OFFSET;
+                        sealvl.setText("Sea Level: " + sealevel + "%");
+                }
+
+	            @Override
+	            public void onStartTrackingTouch(SeekBar seekBar) {}
+	
+	            @Override
+	            public void onStopTrackingTouch(SeekBar seekBar) {}
+        });
+	}
+	public int getFric() {return friction;}
+	public int getTemp() {return temperature;}
+	public int getSea()  {return sealevel;}
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SwapViews.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SwapViews.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SwapViews.java	(revision 15389)
@@ -0,0 +1,77 @@
+package gov.nasa.jpl.issm;
+
+import android.view.View;
+import android.view.animation.DecelerateInterpolator;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+class SwapViews implements Runnable {
+	private boolean mIsFirstView;
+	private boolean containTextView;
+	ImageView mainImage;
+	ImageView infoImage;
+	TextView text;
+	
+	public SwapViews(boolean isFirstView, ImageView image, TextView text) {
+	 mIsFirstView = isFirstView;
+	 containTextView = true;
+	 this.mainImage = image;
+	 this.text = text;
+	}
+	
+	public SwapViews(boolean isFirstView, ImageView front, ImageView back) {
+		mIsFirstView = isFirstView;
+		 containTextView = false;
+		 this.mainImage = front;
+		 this.infoImage  = back;
+	}
+	
+	public void run() {
+	 final float centerX = mainImage.getWidth() / 2.0f;
+	 final float centerY = mainImage.getHeight() / 2.0f;
+	 FlipAnimation rotation;
+	
+	 if (mIsFirstView) 
+	 {
+		 mainImage.setVisibility(View.GONE);
+		 if(containTextView)
+		 {
+			 text.setVisibility(View.VISIBLE);
+			 text.requestFocus();
+		 }
+		 else
+		 {
+		    infoImage.setVisibility(View.VISIBLE);
+		 	infoImage.requestFocus();
+		 }
+	     rotation = new FlipAnimation(-90, 0, centerX, centerY);
+	 } else 
+	 {
+		 if(containTextView)
+		 {
+			 text.setVisibility(View.GONE);
+		 }
+		 else infoImage.setVisibility(View.GONE);
+		 mainImage.setVisibility(View.VISIBLE);
+		 mainImage.requestFocus();
+	
+	     rotation = new FlipAnimation(90, 0, centerX, centerY);
+	 }
+	
+	 rotation.setDuration(500);
+	 rotation.setFillAfter(true);
+	 rotation.setInterpolator(new DecelerateInterpolator());
+	
+	 if (mIsFirstView) 
+	 {
+		 if(containTextView)
+			 text.startAnimation(rotation);
+		 else 
+			 infoImage.setAnimation(rotation);
+	 } 
+	 else 
+	 {
+		 mainImage.startAnimation(rotation);
+	 }
+   }
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/TeamActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/TeamActivity.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/TeamActivity.java	(revision 15389)
@@ -0,0 +1,31 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+//import android.net.Uri;
+import android.os.Bundle;
+import android.webkit.WebView;
+import gov.nasa.jpl.issm.MyWebViewClient;
+
+public class TeamActivity extends Activity {
+
+	String SrcPath = "http://issm.jpl.nasa.gov/about/";
+	
+	private WebView myWebView;
+	
+	   /** Called when the activity is first created. */
+	   @Override	   
+		public void onCreate(Bundle savedInstanceState) {
+			super.onCreate(savedInstanceState);
+			setContentView(R.layout.teampage);
+			
+			
+	 
+			//webView = (WebView) findViewById(R.id.teampage);
+			myWebView = (WebView) findViewById(R.id.teampage);
+			myWebView.setWebViewClient(new MyWebViewClient());
+			myWebView.getSettings().setJavaScriptEnabled(true);
+			myWebView.loadUrl(SrcPath);
+	   }
+
+}
+
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VerticalSeekBar.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VerticalSeekBar.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VerticalSeekBar.java	(revision 15389)
@@ -0,0 +1,59 @@
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.widget.SeekBar;
+
+public class VerticalSeekBar extends SeekBar {
+
+    public VerticalSeekBar(Context context) {
+        super(context);
+    }
+
+    public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
+        super(context, attrs, defStyle);
+    }
+
+    public VerticalSeekBar(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(h, w, oldh, oldw);
+    }
+
+    @Override
+    protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
+        super.onMeasure(heightMeasureSpec, widthMeasureSpec);
+        setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
+    }
+
+    protected void onDraw(Canvas c) {
+    	c.rotate(-90);
+        c.translate(-getHeight(),0);
+        super.onDraw(c);
+    }
+
+    @Override
+    public boolean onTouchEvent(MotionEvent event) {
+        if (!isEnabled()) {
+            return false;
+        }
+        int i = 0;
+        switch (event.getAction()) {
+            case MotionEvent.ACTION_DOWN:
+            case MotionEvent.ACTION_MOVE:
+            case MotionEvent.ACTION_UP:
+                i = getMax() - (int) (getMax() * event.getY() / getHeight());
+                setProgress(i);
+                onSizeChanged(getWidth(), getHeight(), 0, 0);
+                break;
+
+            case MotionEvent.ACTION_CANCEL:
+                break;
+        }
+        return true;
+    }
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VideoActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VideoActivity.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VideoActivity.java	(revision 15389)
@@ -0,0 +1,25 @@
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.net.Uri;
+import android.os.Bundle;
+import android.widget.MediaController;
+import android.widget.VideoView;
+
+public class VideoActivity extends Activity {
+
+	String SrcPath = "rtsp://v2.cache1.c.youtube.com/CjYLENy73wIaLQkXH3-3kcYu1RMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYI-SyfPGoqqyUQw=/0/0/0/video.3gp";
+	
+	   /** Called when the activity is first created. */
+	   @Override
+	   public void onCreate(Bundle savedInstanceState) {
+	       super.onCreate(savedInstanceState);
+	       setContentView(R.layout.videopage);	    
+	       VideoView myVideoView = (VideoView)findViewById(R.id.videoview);
+	       myVideoView.setVideoURI(Uri.parse(SrcPath));
+	       myVideoView.setMediaController(new MediaController(this));
+	       myVideoView.requestFocus();
+	       myVideoView.start();
+	   }
+
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java	(revision 15389)
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package gov.nasa.jpl.issm;
+
+import android.content.Context;
+import android.graphics.Bitmap;
+import android.graphics.Canvas;
+import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.util.AttributeSet;
+import android.view.MotionEvent;
+import android.view.ScaleGestureDetector;
+import android.view.View;
+
+
+public class ZoomImageView extends View {
+    private static final int INVALID_POINTER_ID = -1;
+    private Bitmap b;
+    private Drawable mIcon;
+    private float mPosX;
+    private float mPosY;
+    private float mLastTouchX;
+    private float mLastTouchY;
+    private int mActivePointerId = INVALID_POINTER_ID;
+    
+    private ScaleGestureDetector mScaleDetector;
+    private float mScaleFactor = 1.f;
+    
+    
+    public ZoomImageView(Context context, int i) {
+        this(context, null, 0, i);
+    }
+    
+    public ZoomImageView(Context context, AttributeSet attrs, int i) {
+        this(context, attrs, 0 ,i);
+    }
+    
+    
+    public ZoomImageView(Context context, AttributeSet attrs, int defStyle, int i) {
+        super(context, attrs, defStyle);
+        int resID2 = getResources().getIdentifier("image"+i, "drawable", context.getPackageName());
+        //mIcon = getResources().getDrawable(resID);
+        int width= context.getResources().getDisplayMetrics().widthPixels;
+        int height= context.getResources().getDisplayMetrics().heightPixels;
+        
+        
+        b = ImageResizer.decodeSampledBitmapFromResource(getResources(), resID2, width, height);
+        b = Bitmap.createScaledBitmap(b, width, height, true);
+        mIcon = new BitmapDrawable(getResources(), b);
+        mIcon.setBounds(0, 0, width, height);
+        mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
+    }
+
+	@Override
+    public boolean onTouchEvent(MotionEvent ev) {
+        // Let the ScaleGestureDetector inspect all events.
+        mScaleDetector.onTouchEvent(ev);
+        
+        final int action = ev.getAction();
+        switch (action & MotionEvent.ACTION_MASK) {
+        case MotionEvent.ACTION_DOWN: {
+            final float x = ev.getX();
+            final float y = ev.getY();
+            
+            mLastTouchX = x;
+            mLastTouchY = y;
+            mActivePointerId = ev.getPointerId(0);
+            break;
+        }
+            
+        case MotionEvent.ACTION_MOVE: {
+            final int pointerIndex = ev.findPointerIndex(mActivePointerId);
+            
+            final float x = ev.getX(pointerIndex);
+            final float y = ev.getY(pointerIndex);
+
+            // Only move if the ScaleGestureDetector isn't processing a gesture.
+            if (!mScaleDetector.isInProgress()) {
+                final float dx = x - mLastTouchX;
+                final float dy = y - mLastTouchY;
+
+                mPosX += dx;
+                mPosY += dy;
+
+                invalidate();
+            }
+
+            mLastTouchX = x;
+            mLastTouchY = y;
+
+            break;
+        }
+            
+        case MotionEvent.ACTION_UP: {
+            mActivePointerId = INVALID_POINTER_ID;
+            break;
+        }
+            
+        case MotionEvent.ACTION_CANCEL: {
+            mActivePointerId = INVALID_POINTER_ID;
+            break;
+        }
+        
+        case MotionEvent.ACTION_POINTER_UP: {
+            final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) 
+                    >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
+            final int pointerId = ev.getPointerId(pointerIndex);
+            if (pointerId == mActivePointerId) {
+                // This was our active pointer going up. Choose a new
+                // active pointer and adjust accordingly.
+                final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
+                mLastTouchX = ev.getX(newPointerIndex);
+                mLastTouchY = ev.getY(newPointerIndex);
+                mActivePointerId = ev.getPointerId(newPointerIndex);
+            }
+            break;
+        }
+        }
+        
+        return true;
+    }
+
+    @Override
+    public void onDraw(Canvas canvas) {
+        super.onDraw(canvas);
+        
+        canvas.save();
+        canvas.translate(mPosX, mPosY);
+        canvas.scale(mScaleFactor, mScaleFactor);
+        mIcon.draw(canvas);
+       // canvas.drawBitmap(b,0,0,null);
+        canvas.restore();
+    }
+
+    private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
+        @Override
+        public boolean onScale(ScaleGestureDetector detector) {
+            mScaleFactor *= detector.getScaleFactor();
+            
+            // Don't let the object get too small or too large.
+            mScaleFactor = Math.max(0.1f, Math.min(mScaleFactor, 5.0f));
+
+            invalidate();
+            return true;
+        }
+    }
+}
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageViewActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageViewActivity.java	(revision 15389)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageViewActivity.java	(revision 15389)
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package gov.nasa.jpl.issm;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.ViewGroup;
+
+public class ZoomImageViewActivity extends Activity {
+    /** Called when the activity is first created. */
+	
+	private int position = 0;
+	
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        Bundle image = getIntent().getExtras();
+        {
+        	if(image!= null)
+        	{
+        		position = image.getInt("imagePosition");
+        	}
+        }
+        ZoomImageView view = new ZoomImageView(this,position);
+        view.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+                ViewGroup.LayoutParams.MATCH_PARENT));
+        
+        setContentView(view);
+    }
+    public boolean onKeyDown(int keyCode, KeyEvent event) 
+    {
+        if (keyCode == KeyEvent.KEYCODE_BACK)
+        	finish();
+        return true;
+    }
+}
Index: /issm/mobile/android/Makefile.am
===================================================================
--- /issm/mobile/android/Makefile.am	(revision 15389)
+++ /issm/mobile/android/Makefile.am	(revision 15389)
@@ -0,0 +1,2 @@
+EXTRA_DIST =  Makefile.am issm-android-inputfiles
+SUBDIRS = ISSM_APP
Index: /issm/mobile/android/issm-android-inputfiles/test102.petsc
===================================================================
--- /issm/mobile/android/issm-android-inputfiles/test102.petsc	(revision 15389)
+++ /issm/mobile/android/issm-android-inputfiles/test102.petsc	(revision 15389)
@@ -0,0 +1,17 @@
+%Petsc options file: test102.petsc written from Matlab solver array
+
++NoneAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
+
++DiagnosticVertAnalysis
+-mat_type mpiaij
+-ksp_type preonly
+-pc_type lu
+-pc_factor_mat_solver_package mumps
+-mat_mumps_icntl_14 120
+-pc_factor_shift_positive_definite true
Index: /issm/mobile/android/issm-android-inputfiles/test102.sh
===================================================================
--- /issm/mobile/android/issm-android-inputfiles/test102.sh	(revision 15389)
+++ /issm/mobile/android/issm-android-inputfiles/test102.sh	(revision 15389)
@@ -0,0 +1,2 @@
+#!/bin/sh
+/Users/larour/issm-uci/trunk-jpl/bin/issm.exe DiagnosticSolution /Users/larour/issm-uci/trunk-jpl/src/android/test102 test102 
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.pbxproj
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.pbxproj	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.pbxproj	(revision 15389)
@@ -0,0 +1,518 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		A6647A3A1742C4A00056270F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A391742C4A00056270F /* UIKit.framework */; };
+		A6647A3C1742C4A00056270F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A3B1742C4A00056270F /* Foundation.framework */; };
+		A6647A3E1742C4A00056270F /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A3D1742C4A00056270F /* CoreGraphics.framework */; };
+		A6647A4A1742C4A00056270F /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647A491742C4A00056270F /* AppDelegate.m */; };
+		A6647A531742C4A00056270F /* MainStoryboard_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A6647A511742C4A00056270F /* MainStoryboard_iPhone.storyboard */; };
+		A6647A561742C4A00056270F /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A6647A541742C4A00056270F /* MainStoryboard_iPad.storyboard */; };
+		A6647A591742C4A00056270F /* MenuPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647A581742C4A00056270F /* MenuPageViewController.m */; };
+		A6647A611742C4A00056270F /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A601742C4A00056270F /* SenTestingKit.framework */; };
+		A6647A621742C4A00056270F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A391742C4A00056270F /* UIKit.framework */; };
+		A6647A631742C4A00056270F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A6647A3B1742C4A00056270F /* Foundation.framework */; };
+		A6647A6B1742C4A00056270F /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A6647A691742C4A00056270F /* InfoPlist.strings */; };
+		A6647A6E1742C4A00056270F /* ISSM_APPTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647A6D1742C4A00056270F /* ISSM_APPTests.m */; };
+		A6647A981742F8BC0056270F /* iOSAboutUs.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A8F1742F8BC0056270F /* iOSAboutUs.png */; };
+		A6647A991742F8BC0056270F /* iOSMainBackground.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A901742F8BC0056270F /* iOSMainBackground.png */; };
+		A6647A9A1742F8BC0056270F /* iOSMainBackground_Logo.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A911742F8BC0056270F /* iOSMainBackground_Logo.png */; };
+		A6647A9B1742F8BC0056270F /* iOSTeamPage.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A921742F8BC0056270F /* iOSTeamPage.png */; };
+		A6647A9C1742F8BC0056270F /* ISSMLogo.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A931742F8BC0056270F /* ISSMLogo.png */; };
+		A6647A9D1742F8BC0056270F /* JPLlogo.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A941742F8BC0056270F /* JPLlogo.png */; };
+		A6647A9E1742F8BC0056270F /* snowflake_btn.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A951742F8BC0056270F /* snowflake_btn.png */; };
+		A6647A9F1742F8BC0056270F /* snowflake_btn_press.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A961742F8BC0056270F /* snowflake_btn_press.png */; };
+		A6647AA01742F8BC0056270F /* UCILogo.png in Resources */ = {isa = PBXBuildFile; fileRef = A6647A971742F8BC0056270F /* UCILogo.png */; };
+		A6647AA21742FFC00056270F /* about.html in Resources */ = {isa = PBXBuildFile; fileRef = A6647AA11742FFC00056270F /* about.html */; };
+		A6647AAB17430A060056270F /* AboutViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647AAA17430A060056270F /* AboutViewController.m */; };
+		A6647AAE17430A4F0056270F /* TeamViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647AAD17430A4F0056270F /* TeamViewController.m */; };
+		A6647AB117430AC30056270F /* VideoViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647AB017430AC30056270F /* VideoViewController.m */; };
+		A6647AB417430AFA0056270F /* GalleryViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A6647AB317430AFA0056270F /* GalleryViewController.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+		A6647A641742C4A00056270F /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = A6647A2E1742C4A00056270F /* Project object */;
+			proxyType = 1;
+			remoteGlobalIDString = A6647A351742C4A00056270F;
+			remoteInfo = ISSM_APP;
+		};
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+		A6647A361742C4A00056270F /* ISSM_APP.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ISSM_APP.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		A6647A391742C4A00056270F /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+		A6647A3B1742C4A00056270F /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+		A6647A3D1742C4A00056270F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+		A6647A481742C4A00056270F /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+		A6647A491742C4A00056270F /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+		A6647A521742C4A00056270F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPhone.storyboard; sourceTree = "<group>"; };
+		A6647A551742C4A00056270F /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard_iPad.storyboard; sourceTree = "<group>"; };
+		A6647A571742C4A00056270F /* MenuPageViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MenuPageViewController.h; sourceTree = "<group>"; };
+		A6647A581742C4A00056270F /* MenuPageViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MenuPageViewController.m; sourceTree = "<group>"; };
+		A6647A5F1742C4A00056270F /* ISSM_APPTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ISSM_APPTests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
+		A6647A601742C4A00056270F /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+		A6647A681742C4A00056270F /* ISSM_APPTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ISSM_APPTests-Info.plist"; sourceTree = "<group>"; };
+		A6647A6A1742C4A00056270F /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+		A6647A6C1742C4A00056270F /* ISSM_APPTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ISSM_APPTests.h; sourceTree = "<group>"; };
+		A6647A6D1742C4A00056270F /* ISSM_APPTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ISSM_APPTests.m; sourceTree = "<group>"; };
+		A6647A8F1742F8BC0056270F /* iOSAboutUs.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOSAboutUs.png; sourceTree = "<group>"; };
+		A6647A901742F8BC0056270F /* iOSMainBackground.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOSMainBackground.png; sourceTree = "<group>"; };
+		A6647A911742F8BC0056270F /* iOSMainBackground_Logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOSMainBackground_Logo.png; sourceTree = "<group>"; };
+		A6647A921742F8BC0056270F /* iOSTeamPage.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = iOSTeamPage.png; sourceTree = "<group>"; };
+		A6647A931742F8BC0056270F /* ISSMLogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ISSMLogo.png; sourceTree = "<group>"; };
+		A6647A941742F8BC0056270F /* JPLlogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = JPLlogo.png; sourceTree = "<group>"; };
+		A6647A951742F8BC0056270F /* snowflake_btn.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = snowflake_btn.png; sourceTree = "<group>"; };
+		A6647A961742F8BC0056270F /* snowflake_btn_press.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = snowflake_btn_press.png; sourceTree = "<group>"; };
+		A6647A971742F8BC0056270F /* UCILogo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = UCILogo.png; sourceTree = "<group>"; };
+		A6647AA11742FFC00056270F /* about.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; name = about.html; path = ../../../../text/about.html; sourceTree = "<group>"; };
+		A6647AA917430A060056270F /* AboutViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AboutViewController.h; sourceTree = "<group>"; };
+		A6647AAA17430A060056270F /* AboutViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AboutViewController.m; sourceTree = "<group>"; };
+		A6647AAC17430A4F0056270F /* TeamViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TeamViewController.h; sourceTree = "<group>"; };
+		A6647AAD17430A4F0056270F /* TeamViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TeamViewController.m; sourceTree = "<group>"; };
+		A6647AAF17430AC30056270F /* VideoViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VideoViewController.h; sourceTree = "<group>"; };
+		A6647AB017430AC30056270F /* VideoViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VideoViewController.m; sourceTree = "<group>"; };
+		A6647AB217430AFA0056270F /* GalleryViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GalleryViewController.h; sourceTree = "<group>"; };
+		A6647AB317430AFA0056270F /* GalleryViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GalleryViewController.m; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		A6647A331742C4A00056270F /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A3A1742C4A00056270F /* UIKit.framework in Frameworks */,
+				A6647A3C1742C4A00056270F /* Foundation.framework in Frameworks */,
+				A6647A3E1742C4A00056270F /* CoreGraphics.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A6647A5B1742C4A00056270F /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A611742C4A00056270F /* SenTestingKit.framework in Frameworks */,
+				A6647A621742C4A00056270F /* UIKit.framework in Frameworks */,
+				A6647A631742C4A00056270F /* Foundation.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		A6647A2D1742C4A00056270F = {
+			isa = PBXGroup;
+			children = (
+				A6647AAF17430AC30056270F /* VideoViewController.h */,
+				A6647AB017430AC30056270F /* VideoViewController.m */,
+				A6647A3F1742C4A00056270F /* ISSM_APP */,
+				A6647A661742C4A00056270F /* ISSM_APPTests */,
+				A6647A381742C4A00056270F /* Frameworks */,
+				A6647A371742C4A00056270F /* Products */,
+			);
+			sourceTree = "<group>";
+		};
+		A6647A371742C4A00056270F /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				A6647A361742C4A00056270F /* ISSM_APP.app */,
+				A6647A5F1742C4A00056270F /* ISSM_APPTests.octest */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		A6647A381742C4A00056270F /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				A6647A391742C4A00056270F /* UIKit.framework */,
+				A6647A3B1742C4A00056270F /* Foundation.framework */,
+				A6647A3D1742C4A00056270F /* CoreGraphics.framework */,
+				A6647A601742C4A00056270F /* SenTestingKit.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+		A6647A3F1742C4A00056270F /* ISSM_APP */ = {
+			isa = PBXGroup;
+			children = (
+				A6647A671742C4A00056270F /* Supporting Files */,
+				A6647A481742C4A00056270F /* AppDelegate.h */,
+				A6647AA917430A060056270F /* AboutViewController.h */,
+				A6647AAA17430A060056270F /* AboutViewController.m */,
+				A6647A491742C4A00056270F /* AppDelegate.m */,
+				A6647A511742C4A00056270F /* MainStoryboard_iPhone.storyboard */,
+				A6647AB217430AFA0056270F /* GalleryViewController.h */,
+				A6647AB317430AFA0056270F /* GalleryViewController.m */,
+				A6647A541742C4A00056270F /* MainStoryboard_iPad.storyboard */,
+				A6647A571742C4A00056270F /* MenuPageViewController.h */,
+				A6647A581742C4A00056270F /* MenuPageViewController.m */,
+				A6647AAC17430A4F0056270F /* TeamViewController.h */,
+				A6647AAD17430A4F0056270F /* TeamViewController.m */,
+			);
+			path = ISSM_APP;
+			sourceTree = "<group>";
+		};
+		A6647A661742C4A00056270F /* ISSM_APPTests */ = {
+			isa = PBXGroup;
+			children = (
+				A6647A6C1742C4A00056270F /* ISSM_APPTests.h */,
+				A6647A6D1742C4A00056270F /* ISSM_APPTests.m */,
+			);
+			path = ISSM_APPTests;
+			sourceTree = "<group>";
+		};
+		A6647A671742C4A00056270F /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+				A6647AA11742FFC00056270F /* about.html */,
+				A6647A8D1742F8BC0056270F /* ios */,
+				A6647A681742C4A00056270F /* ISSM_APPTests-Info.plist */,
+				A6647A691742C4A00056270F /* InfoPlist.strings */,
+			);
+			name = "Supporting Files";
+			path = ISSM_APPTests;
+			sourceTree = SOURCE_ROOT;
+		};
+		A6647A8D1742F8BC0056270F /* ios */ = {
+			isa = PBXGroup;
+			children = (
+				A6647A8F1742F8BC0056270F /* iOSAboutUs.png */,
+				A6647A901742F8BC0056270F /* iOSMainBackground.png */,
+				A6647A911742F8BC0056270F /* iOSMainBackground_Logo.png */,
+				A6647A921742F8BC0056270F /* iOSTeamPage.png */,
+				A6647A931742F8BC0056270F /* ISSMLogo.png */,
+				A6647A941742F8BC0056270F /* JPLlogo.png */,
+				A6647A951742F8BC0056270F /* snowflake_btn.png */,
+				A6647A961742F8BC0056270F /* snowflake_btn_press.png */,
+				A6647A971742F8BC0056270F /* UCILogo.png */,
+			);
+			name = ios;
+			path = ../../../../graphics/export/ios;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		A6647A351742C4A00056270F /* ISSM_APP */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A6647A711742C4A00056270F /* Build configuration list for PBXNativeTarget "ISSM_APP" */;
+			buildPhases = (
+				A6647A321742C4A00056270F /* Sources */,
+				A6647A331742C4A00056270F /* Frameworks */,
+				A6647A341742C4A00056270F /* Resources */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = ISSM_APP;
+			productName = ISSM_APP;
+			productReference = A6647A361742C4A00056270F /* ISSM_APP.app */;
+			productType = "com.apple.product-type.application";
+		};
+		A6647A5E1742C4A00056270F /* ISSM_APPTests */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = A6647A741742C4A00056270F /* Build configuration list for PBXNativeTarget "ISSM_APPTests" */;
+			buildPhases = (
+				A6647A5A1742C4A00056270F /* Sources */,
+				A6647A5B1742C4A00056270F /* Frameworks */,
+				A6647A5C1742C4A00056270F /* Resources */,
+				A6647A5D1742C4A00056270F /* ShellScript */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+				A6647A651742C4A00056270F /* PBXTargetDependency */,
+			);
+			name = ISSM_APPTests;
+			productName = ISSM_APPTests;
+			productReference = A6647A5F1742C4A00056270F /* ISSM_APPTests.octest */;
+			productType = "com.apple.product-type.bundle";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		A6647A2E1742C4A00056270F /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 0460;
+				ORGANIZATIONNAME = gov.nasa.jpl;
+			};
+			buildConfigurationList = A6647A311742C4A00056270F /* Build configuration list for PBXProject "ISSM_APP" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = English;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+			);
+			mainGroup = A6647A2D1742C4A00056270F;
+			productRefGroup = A6647A371742C4A00056270F /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				A6647A351742C4A00056270F /* ISSM_APP */,
+				A6647A5E1742C4A00056270F /* ISSM_APPTests */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		A6647A341742C4A00056270F /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A531742C4A00056270F /* MainStoryboard_iPhone.storyboard in Resources */,
+				A6647A561742C4A00056270F /* MainStoryboard_iPad.storyboard in Resources */,
+				A6647A981742F8BC0056270F /* iOSAboutUs.png in Resources */,
+				A6647A991742F8BC0056270F /* iOSMainBackground.png in Resources */,
+				A6647A9A1742F8BC0056270F /* iOSMainBackground_Logo.png in Resources */,
+				A6647A9B1742F8BC0056270F /* iOSTeamPage.png in Resources */,
+				A6647A9C1742F8BC0056270F /* ISSMLogo.png in Resources */,
+				A6647A9D1742F8BC0056270F /* JPLlogo.png in Resources */,
+				A6647A9E1742F8BC0056270F /* snowflake_btn.png in Resources */,
+				A6647A9F1742F8BC0056270F /* snowflake_btn_press.png in Resources */,
+				A6647AA01742F8BC0056270F /* UCILogo.png in Resources */,
+				A6647AA21742FFC00056270F /* about.html in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A6647A5C1742C4A00056270F /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A6B1742C4A00056270F /* InfoPlist.strings in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		A6647A5D1742C4A00056270F /* ShellScript */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		A6647A321742C4A00056270F /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A4A1742C4A00056270F /* AppDelegate.m in Sources */,
+				A6647A591742C4A00056270F /* MenuPageViewController.m in Sources */,
+				A6647AAB17430A060056270F /* AboutViewController.m in Sources */,
+				A6647AAE17430A4F0056270F /* TeamViewController.m in Sources */,
+				A6647AB117430AC30056270F /* VideoViewController.m in Sources */,
+				A6647AB417430AFA0056270F /* GalleryViewController.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		A6647A5A1742C4A00056270F /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				A6647A6E1742C4A00056270F /* ISSM_APPTests.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+		A6647A651742C4A00056270F /* PBXTargetDependency */ = {
+			isa = PBXTargetDependency;
+			target = A6647A351742C4A00056270F /* ISSM_APP */;
+			targetProxy = A6647A641742C4A00056270F /* PBXContainerItemProxy */;
+		};
+/* End PBXTargetDependency section */
+
+/* Begin PBXVariantGroup section */
+		A6647A511742C4A00056270F /* MainStoryboard_iPhone.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				A6647A521742C4A00056270F /* en */,
+			);
+			name = MainStoryboard_iPhone.storyboard;
+			sourceTree = "<group>";
+		};
+		A6647A541742C4A00056270F /* MainStoryboard_iPad.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				A6647A551742C4A00056270F /* en */,
+			);
+			name = MainStoryboard_iPad.storyboard;
+			sourceTree = "<group>";
+		};
+		A6647A691742C4A00056270F /* InfoPlist.strings */ = {
+			isa = PBXVariantGroup;
+			children = (
+				A6647A6A1742C4A00056270F /* en */,
+			);
+			name = InfoPlist.strings;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		A6647A6F1742C4A00056270F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		A6647A701742C4A00056270F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 6.1;
+				OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		A6647A721742C4A00056270F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "ISSM_APP/ISSM_APP-Prefix.pch";
+				INFOPLIST_FILE = "ISSM_APP/ISSM_APP-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Debug;
+		};
+		A6647A731742C4A00056270F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "ISSM_APP/ISSM_APP-Prefix.pch";
+				INFOPLIST_FILE = "ISSM_APP/ISSM_APP-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				WRAPPER_EXTENSION = app;
+			};
+			name = Release;
+		};
+		A6647A751742C4A00056270F /* Debug */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ISSM_APP.app/ISSM_APP";
+				FRAMEWORK_SEARCH_PATHS = (
+					"\"$(SDKROOT)/Developer/Library/Frameworks\"",
+					"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
+				);
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "ISSM_APP/ISSM_APP-Prefix.pch";
+				INFOPLIST_FILE = "ISSM_APPTests/ISSM_APPTests-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TEST_HOST = "$(BUNDLE_LOADER)";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Debug;
+		};
+		A6647A761742C4A00056270F /* Release */ = {
+			isa = XCBuildConfiguration;
+			buildSettings = {
+				BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/ISSM_APP.app/ISSM_APP";
+				FRAMEWORK_SEARCH_PATHS = (
+					"\"$(SDKROOT)/Developer/Library/Frameworks\"",
+					"\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\"",
+				);
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = "ISSM_APP/ISSM_APP-Prefix.pch";
+				INFOPLIST_FILE = "ISSM_APPTests/ISSM_APPTests-Info.plist";
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				TEST_HOST = "$(BUNDLE_LOADER)";
+				WRAPPER_EXTENSION = octest;
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		A6647A311742C4A00056270F /* Build configuration list for PBXProject "ISSM_APP" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A6647A6F1742C4A00056270F /* Debug */,
+				A6647A701742C4A00056270F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A6647A711742C4A00056270F /* Build configuration list for PBXNativeTarget "ISSM_APP" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A6647A721742C4A00056270F /* Debug */,
+				A6647A731742C4A00056270F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		A6647A741742C4A00056270F /* Build configuration list for PBXNativeTarget "ISSM_APPTests" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				A6647A751742C4A00056270F /* Debug */,
+				A6647A761742C4A00056270F /* Release */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = A6647A2E1742C4A00056270F /* Project object */;
+}
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/contents.xcworkspacedata
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/contents.xcworkspacedata	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/contents.xcworkspacedata	(revision 15389)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:ISSM_APP.xcodeproj">
+   </FileRef>
+</Workspace>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/xcuserdata/kitpetrie.xcuserdatad/WorkspaceSettings.xcsettings
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/xcuserdata/kitpetrie.xcuserdatad/WorkspaceSettings.xcsettings	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/project.xcworkspace/xcuserdata/kitpetrie.xcuserdatad/WorkspaceSettings.xcsettings	(revision 15389)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key>
+	<true/>
+	<key>SnapshotAutomaticallyBeforeSignificantChanges</key>
+	<true/>
+</dict>
+</plist>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/ISSM_APP.xcscheme
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/ISSM_APP.xcscheme	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/ISSM_APP.xcscheme	(revision 15389)
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "0460"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "A6647A351742C4A00056270F"
+               BuildableName = "ISSM_APP.app"
+               BlueprintName = "ISSM_APP"
+               ReferencedContainer = "container:ISSM_APP.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      buildConfiguration = "Debug">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "A6647A5E1742C4A00056270F"
+               BuildableName = "ISSM_APPTests.octest"
+               BlueprintName = "ISSM_APPTests"
+               ReferencedContainer = "container:ISSM_APP.xcodeproj">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A6647A351742C4A00056270F"
+            BuildableName = "ISSM_APP.app"
+            BlueprintName = "ISSM_APP"
+            ReferencedContainer = "container:ISSM_APP.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+   </TestAction>
+   <LaunchAction
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Debug"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A6647A351742C4A00056270F"
+            BuildableName = "ISSM_APP.app"
+            BlueprintName = "ISSM_APP"
+            ReferencedContainer = "container:ISSM_APP.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      buildConfiguration = "Release"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "A6647A351742C4A00056270F"
+            BuildableName = "ISSM_APP.app"
+            BlueprintName = "ISSM_APP"
+            ReferencedContainer = "container:ISSM_APP.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/xcschememanagement.plist
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/xcschememanagement.plist	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP.xcodeproj/xcuserdata/kitpetrie.xcuserdatad/xcschemes/xcschememanagement.plist	(revision 15389)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>SchemeUserState</key>
+	<dict>
+		<key>ISSM_APP.xcscheme</key>
+		<dict>
+			<key>orderHint</key>
+			<integer>0</integer>
+		</dict>
+	</dict>
+	<key>SuppressBuildableAutocreation</key>
+	<dict>
+		<key>A6647A351742C4A00056270F</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+		<key>A6647A5E1742C4A00056270F</key>
+		<dict>
+			<key>primary</key>
+			<true/>
+		</dict>
+	</dict>
+</dict>
+</plist>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.h	(revision 15389)
@@ -0,0 +1,15 @@
+//
+//  AboutViewController.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AboutViewController : UIViewController
+
+@property (nonatomic, strong) IBOutlet UIWebView *aboutWebView;
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AboutViewController.m	(revision 15389)
@@ -0,0 +1,44 @@
+//
+//  AboutViewController.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "AboutViewController.h"
+
+@interface AboutViewController ()
+
+@end
+
+@implementation AboutViewController
+
+@synthesize aboutWebView;
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+    
+    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"about.html" ofType:nil]];
+    NSURLRequest *request = [NSURLRequest requestWithURL:url];
+    [aboutWebView loadRequest:request];
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.h	(revision 15389)
@@ -0,0 +1,15 @@
+//
+//  AppDelegate.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface AppDelegate : UIResponder <UIApplicationDelegate>
+
+@property (strong, nonatomic) UIWindow *window;
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/AppDelegate.m	(revision 15389)
@@ -0,0 +1,46 @@
+//
+//  AppDelegate.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+@implementation AppDelegate
+
+- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
+{
+    // Override point for customization after application launch.
+    return YES;
+}
+
+- (void)applicationWillResignActive:(UIApplication *)application
+{
+    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
+    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
+}
+
+- (void)applicationDidEnterBackground:(UIApplication *)application
+{
+    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
+    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
+}
+
+- (void)applicationWillEnterForeground:(UIApplication *)application
+{
+    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
+}
+
+- (void)applicationDidBecomeActive:(UIApplication *)application
+{
+    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
+}
+
+- (void)applicationWillTerminate:(UIApplication *)application
+{
+    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.h	(revision 15389)
@@ -0,0 +1,13 @@
+//
+//  GalleryViewController.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface GalleryViewController : UIViewController
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/GalleryViewController.m	(revision 15389)
@@ -0,0 +1,38 @@
+//
+//  GalleryViewController.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "GalleryViewController.h"
+
+@interface GalleryViewController ()
+
+@end
+
+@implementation GalleryViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Info.plist
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Info.plist	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Info.plist	(revision 15389)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleDisplayName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>issm.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>${PRODUCT_NAME}</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UIMainStoryboardFile</key>
+	<string>MainStoryboard_iPhone</string>
+	<key>UIMainStoryboardFile~ipad</key>
+	<string>MainStoryboard_iPad</string>
+	<key>UIRequiredDeviceCapabilities</key>
+	<array>
+		<string>armv7</string>
+	</array>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+</dict>
+</plist>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Prefix.pch
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Prefix.pch	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/ISSM_APP-Prefix.pch	(revision 15389)
@@ -0,0 +1,14 @@
+//
+// Prefix header for all source files of the 'ISSM_APP' target in the 'ISSM_APP' project
+//
+
+#import <Availability.h>
+
+#ifndef __IPHONE_5_0
+#warning "This project uses features only available in iOS SDK 5.0 and later."
+#endif
+
+#ifdef __OBJC__
+    #import <UIKit/UIKit.h>
+    #import <Foundation/Foundation.h>
+#endif
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.h	(revision 15389)
@@ -0,0 +1,13 @@
+//
+//  ViewController.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface MenuPageViewController : UIViewController
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/MenuPageViewController.m	(revision 15389)
@@ -0,0 +1,29 @@
+//
+//  ViewController.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "MenuPageViewController.h"
+
+@interface MenuPageViewController ()
+
+@end
+
+@implementation MenuPageViewController
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view, typically from a nib.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.h	(revision 15389)
@@ -0,0 +1,13 @@
+//
+//  TeamViewController.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface TeamViewController : UIViewController
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/TeamViewController.m	(revision 15389)
@@ -0,0 +1,38 @@
+//
+//  TeamViewController.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "TeamViewController.h"
+
+@interface TeamViewController ()
+
+@end
+
+@implementation TeamViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/InfoPlist.strings
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/InfoPlist.strings	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/InfoPlist.strings	(revision 15389)
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPad.storyboard
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPad.storyboard	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPad.storyboard	(revision 15389)
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12C3103" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="2">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+    </dependencies>
+    <scenes>
+        <!--Menu Page View Controller-->
+        <scene sceneID="4">
+            <objects>
+                <viewController id="2" customClass="MenuPageViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="5">
+                        <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="3" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination"/>
+    </simulatedMetricsContainer>
+</document>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPhone.storyboard
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPhone.storyboard	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/en.lproj/MainStoryboard_iPhone.storyboard	(revision 15389)
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12C3103" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="vU4-gH-R9L">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="wVJ-iN-bLu">
+            <objects>
+                <viewController id="eCI-xo-hjK" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="Tqv-0E-pZW">
+                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="hyd-cS-M4l" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1636" y="-361"/>
+        </scene>
+        <!--Menu Page View Controller-->
+        <scene sceneID="5">
+            <objects>
+                <viewController id="2" customClass="MenuPageViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="3">
+                        <rect key="frame" x="0.0" y="64" width="320" height="504"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="iOSMainBackground.png" translatesAutoresizingMaskIntoConstraints="NO" id="VwP-bI-G6f"/>
+                            <imageView userInteractionEnabled="NO" contentMode="scaleToFill" image="ISSMLogo.png" translatesAutoresizingMaskIntoConstraints="NO" id="3JV-tH-ZfA">
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="240" id="4tN-Oy-qXi"/>
+                                    <constraint firstAttribute="height" constant="128" id="Owd-BG-FNv"/>
+                                </constraints>
+                            </imageView>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="uB5-Cb-N7Z">
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="108" id="sca-DC-69S"/>
+                                    <constraint firstAttribute="height" constant="83" id="wRQ-LM-Rcd"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <state key="normal" title="About" backgroundImage="snowflake_btn.png">
+                                    <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <state key="disabled" backgroundImage="snowflake_btn.png"/>
+                                <state key="highlighted">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <connections>
+                                    <segue destination="iJ0-bm-Slp" kind="modal" id="NXS-xd-HmN"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tmL-l6-YfN">
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="83" id="T0T-nn-X5I"/>
+                                    <constraint firstAttribute="width" constant="108" id="ZzT-9Z-Nwh"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <state key="normal" title="Team" backgroundImage="snowflake_btn.png">
+                                    <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <state key="disabled" backgroundImage="snowflake_btn.png"/>
+                                <state key="highlighted">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <connections>
+                                    <segue destination="Obk-fc-3WN" kind="modal" id="Lcg-17-23W"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="d1d-pC-IlB">
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="108" id="RE2-wC-DU8"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <state key="normal" title="Video" backgroundImage="snowflake_btn.png">
+                                    <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <state key="disabled" backgroundImage="snowflake_btn.png"/>
+                                <state key="highlighted">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <connections>
+                                    <segue destination="zi0-E3-04z" kind="modal" id="dKi-lj-j5S"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="TKd-Z5-99B">
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="83" id="DkF-Jp-oUX"/>
+                                    <constraint firstAttribute="width" constant="108" id="LiC-cP-xjp"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <state key="normal" title="Play" backgroundImage="snowflake_btn.png">
+                                    <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <state key="disabled" backgroundImage="snowflake_btn.png"/>
+                                <state key="highlighted">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <connections>
+                                    <segue destination="eCI-xo-hjK" kind="modal" id="EFt-OJ-mn6"/>
+                                </connections>
+                            </button>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="RuH-KB-Hxx">
+                                <constraints>
+                                    <constraint firstAttribute="width" constant="108" id="CHc-g3-iNF"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                <state key="normal" title="Gallery" backgroundImage="snowflake_btn.png">
+                                    <color key="titleColor" cocoaTouchSystemColor="darkTextColor"/>
+                                    <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <state key="disabled" backgroundImage="snowflake_btn.png"/>
+                                <state key="highlighted">
+                                    <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                </state>
+                                <connections>
+                                    <segue destination="fYq-pz-zqy" kind="modal" id="cVr-Za-fC2"/>
+                                </connections>
+                            </button>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="tmL-l6-YfN" firstAttribute="centerX" secondItem="VwP-bI-G6f" secondAttribute="centerX" type="default" id="0wj-e7-Sdc"/>
+                            <constraint firstItem="VwP-bI-G6f" firstAttribute="leading" secondItem="3" secondAttribute="leading" type="default" id="4D9-m7-qle"/>
+                            <constraint firstItem="TKd-Z5-99B" firstAttribute="top" secondItem="RuH-KB-Hxx" secondAttribute="top" type="default" id="7wq-qb-1Fi"/>
+                            <constraint firstItem="uB5-Cb-N7Z" firstAttribute="top" secondItem="3" secondAttribute="top" constant="93" id="Bva-rL-TFN"/>
+                            <constraint firstItem="d1d-pC-IlB" firstAttribute="trailing" secondItem="3" secondAttribute="trailing" type="default" id="MF0-bp-eSb"/>
+                            <constraint firstItem="TKd-Z5-99B" firstAttribute="bottom" secondItem="RuH-KB-Hxx" secondAttribute="bottom" type="default" id="R2b-Zo-nT2"/>
+                            <constraint firstAttribute="bottom" secondItem="TKd-Z5-99B" secondAttribute="bottom" constant="47" id="RXC-ZN-ZSd"/>
+                            <constraint firstItem="tmL-l6-YfN" firstAttribute="top" secondItem="3" secondAttribute="top" constant="28" id="TKf-xs-wp9"/>
+                            <constraint firstItem="d1d-pC-IlB" firstAttribute="top" secondItem="uB5-Cb-N7Z" secondAttribute="top" type="default" id="Un0-Fl-96o"/>
+                            <constraint firstItem="VwP-bI-G6f" firstAttribute="trailing" secondItem="3" secondAttribute="trailing" type="default" id="XhU-op-OpK"/>
+                            <constraint firstItem="3JV-tH-ZfA" firstAttribute="top" secondItem="3" secondAttribute="top" constant="192" id="Zsv-36-0zp"/>
+                            <constraint firstItem="uB5-Cb-N7Z" firstAttribute="leading" secondItem="3" secondAttribute="leading" type="default" id="eUH-I0-dCT"/>
+                            <constraint firstAttribute="trailing" secondItem="RuH-KB-Hxx" secondAttribute="trailing" constant="27" id="gPC-PK-xYh"/>
+                            <constraint firstItem="3JV-tH-ZfA" firstAttribute="leading" secondItem="3" secondAttribute="leading" constant="35" id="naK-hB-evo"/>
+                            <constraint firstItem="VwP-bI-G6f" firstAttribute="bottom" secondItem="3" secondAttribute="bottom" type="default" id="rWM-Yc-iCF"/>
+                            <constraint firstItem="VwP-bI-G6f" firstAttribute="top" secondItem="3" secondAttribute="top" type="default" id="slN-EI-hM7"/>
+                            <constraint firstItem="TKd-Z5-99B" firstAttribute="leading" secondItem="3" secondAttribute="leading" constant="28" id="tl0-RV-dKx"/>
+                            <constraint firstItem="uB5-Cb-N7Z" firstAttribute="bottom" secondItem="d1d-pC-IlB" secondAttribute="bottom" type="default" id="wO5-C8-7lI"/>
+                        </constraints>
+                    </view>
+                    <navigationItem key="navigationItem" id="A84-Yh-P4q"/>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="4" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-360" y="-361"/>
+        </scene>
+        <!--Gallery View Controller-->
+        <scene sceneID="pcO-6h-0Xp">
+            <objects>
+                <viewController id="fYq-pz-zqy" customClass="GalleryViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ZW3-ey-0Nz">
+                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="FN9-sw-xTC" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-632" y="518"/>
+        </scene>
+        <!--About View Controller-->
+        <scene sceneID="bQG-Qb-Nzg">
+            <objects>
+                <viewController id="iJ0-bm-Slp" customClass="AboutViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="EsP-zn-j5d">
+                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Ofm-HS-T7v">
+                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                            </webView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="Ofm-HS-T7v" firstAttribute="top" secondItem="EsP-zn-j5d" secondAttribute="top" type="default" id="Nfh-aW-RNv"/>
+                            <constraint firstItem="Ofm-HS-T7v" firstAttribute="bottom" secondItem="EsP-zn-j5d" secondAttribute="bottom" type="default" id="Onp-SE-ong"/>
+                            <constraint firstItem="Ofm-HS-T7v" firstAttribute="leading" secondItem="EsP-zn-j5d" secondAttribute="leading" type="default" id="gt0-Vp-Zqt"/>
+                            <constraint firstItem="Ofm-HS-T7v" firstAttribute="trailing" secondItem="EsP-zn-j5d" secondAttribute="trailing" type="default" id="nZ0-hb-Ws1"/>
+                        </constraints>
+                    </view>
+                    <connections>
+                        <outlet property="aboutWebView" destination="Ofm-HS-T7v" id="hBy-fP-rdj"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="9Pp-Ss-Ooq" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-1402" y="-1809"/>
+        </scene>
+        <!--Team View Controller-->
+        <scene sceneID="TGt-X4-Re4">
+            <objects>
+                <viewController id="Obk-fc-3WN" customClass="TeamViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="iRB-zc-G2G">
+                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <webView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="VrF-CS-oiU" customClass="TeamWebView">
+                                <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                            </webView>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                        <constraints>
+                            <constraint firstItem="VrF-CS-oiU" firstAttribute="top" secondItem="iRB-zc-G2G" secondAttribute="top" type="default" id="0yj-jY-wMI"/>
+                            <constraint firstItem="VrF-CS-oiU" firstAttribute="trailing" secondItem="iRB-zc-G2G" secondAttribute="trailing" type="default" id="1jN-0w-rMe"/>
+                            <constraint firstItem="VrF-CS-oiU" firstAttribute="bottom" secondItem="iRB-zc-G2G" secondAttribute="bottom" type="default" id="cwg-mm-eyZ"/>
+                            <constraint firstItem="VrF-CS-oiU" firstAttribute="leading" secondItem="iRB-zc-G2G" secondAttribute="leading" type="default" id="ltF-f6-fVf"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="Muu-H0-N4J" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-632" y="-1250"/>
+        </scene>
+        <!--Video View Controller-->
+        <scene sceneID="HhA-Jd-bLx">
+            <objects>
+                <viewController id="zi0-E3-04z" customClass="VideoViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="ZB0-Fv-9Ed">
+                        <rect key="frame" x="0.0" y="20" width="320" height="548"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="ord-jM-V6R" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-1402" y="1091"/>
+        </scene>
+        <!--Navigation Controller-->
+        <scene sceneID="53o-Lu-2c5">
+            <objects>
+                <navigationController id="vU4-gH-R9L" sceneMemberID="viewController">
+                    <toolbarItems/>
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="e7D-nq-n5S">
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <nil name="viewControllers"/>
+                    <connections>
+                        <segue destination="2" kind="relationship" relationship="rootViewController" id="Ex0-8c-FpS"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="GDK-uM-ROa" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-886" y="-361"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="ISSMLogo.png" width="624" height="279"/>
+        <image name="iOSMainBackground.png" width="640" height="960"/>
+        <image name="snowflake_btn.png" width="120" height="92"/>
+    </resources>
+    <classes>
+        <class className="AboutViewController" superclassName="UIViewController">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/AboutViewController.h"/>
+            <relationships>
+                <relationship kind="outlet" name="aboutWebView" candidateClass="UIWebView"/>
+            </relationships>
+        </class>
+        <class className="GalleryViewController" superclassName="UIViewController">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/GalleryViewController.h"/>
+        </class>
+        <class className="MenuPageViewController" superclassName="UIViewController">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/MenuPageViewController.h"/>
+        </class>
+        <class className="NSLayoutConstraint" superclassName="NSObject">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
+        </class>
+        <class className="TeamViewController" superclassName="UIViewController">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/TeamViewController.h"/>
+        </class>
+        <class className="VideoViewController" superclassName="UIViewController">
+            <source key="sourceIdentifier" type="project" relativePath="./Classes/VideoViewController.h"/>
+        </class>
+    </classes>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination" type="retina4"/>
+    </simulatedMetricsContainer>
+</document>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/main.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/main.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APP/main.m	(revision 15389)
@@ -0,0 +1,18 @@
+//
+//  main.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "AppDelegate.h"
+
+int main(int argc, char *argv[])
+{
+    @autoreleasepool {
+        return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
+    }
+}
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests-Info.plist
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests-Info.plist	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests-Info.plist	(revision 15389)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>en</string>
+	<key>CFBundleExecutable</key>
+	<string>${EXECUTABLE_NAME}</string>
+	<key>CFBundleIdentifier</key>
+	<string>issm.${PRODUCT_NAME:rfc1034identifier}</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>BNDL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>1.0</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1</string>
+</dict>
+</plist>
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.h	(revision 15389)
@@ -0,0 +1,13 @@
+//
+//  ISSM_APPTests.h
+//  ISSM_APPTests
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <SenTestingKit/SenTestingKit.h>
+
+@interface ISSM_APPTests : SenTestCase
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/ISSM_APPTests.m	(revision 15389)
@@ -0,0 +1,32 @@
+//
+//  ISSM_APPTests.m
+//  ISSM_APPTests
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "ISSM_APPTests.h"
+
+@implementation ISSM_APPTests
+
+- (void)setUp
+{
+    [super setUp];
+
+    // Set-up code here.
+}
+
+- (void)tearDown
+{
+    // Tear-down code here.
+
+    [super tearDown];
+}
+
+- (void)testExample
+{
+    STFail(@"Unit tests are not implemented yet in ISSM_APPTests");
+}
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/en.lproj/InfoPlist.strings
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/en.lproj/InfoPlist.strings	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/ISSM_APPTests/en.lproj/InfoPlist.strings	(revision 15389)
@@ -0,0 +1,2 @@
+/* Localized versions of Info.plist keys */
+
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.h
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.h	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.h	(revision 15389)
@@ -0,0 +1,13 @@
+//
+//  VideoViewController.h
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface VideoViewController : UIViewController
+
+@end
Index: /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.m
===================================================================
--- /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.m	(revision 15389)
+++ /issm/mobile/ios/ISSM_APP/ISSM_APP/VideoViewController.m	(revision 15389)
@@ -0,0 +1,38 @@
+//
+//  VideoViewController.m
+//  ISSM_APP
+//
+//  Created by kitpetrie on 5/14/13.
+//  Copyright (c) 2013 gov.nasa.jpl. All rights reserved.
+//
+
+#import "VideoViewController.h"
+
+@interface VideoViewController ()
+
+@end
+
+@implementation VideoViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+@end
Index: /issm/mobile/text/About.txt
===================================================================
--- /issm/mobile/text/About.txt	(revision 15389)
+++ /issm/mobile/text/About.txt	(revision 15389)
@@ -0,0 +1,4 @@
+About:
+
+ISSM is the result of collaboration between the Jet Propulsion Laboratory and University of California at Irvine. Its purpose is to tackle the challenge of modeling the evolution of the polar ice caps in Greenland and Antarctica.
+ISSM is funded by the NASA Cryosphere and MAP (Modeling Analysis and Prediction) programs, JPL R&TD (Research, Technology and Development) and the National Science Foundation. Our main collaborators are: MSSMat Laboratory of cole Centrale Paris, Argonne National Laboratory and the Department of Geology of University of Buffalo, NY.
Index: /issm/mobile/text/ISSM Team.txt
===================================================================
--- /issm/mobile/text/ISSM Team.txt	(revision 15389)
+++ /issm/mobile/text/ISSM Team.txt	(revision 15389)
@@ -0,0 +1,20 @@
+ISSM Team:
+
+-  Managment
+      ¥	Scientific director: Eric Rignot
+      ¥	Technical director: Eric Larour
+-  Core Development
+      ¥	Eric Larour
+      ¥	Helene Seroussi
+      ¥	Mathieu Morlighem
+-  Other Developers
+      ¥	John Schiermeier
+      ¥	Nicole Schlegel
+      ¥	Chris Borstad
+-  Apllications & Analyses
+      ¥	Ala Khazendar
+      ¥	Daria Halkides
+      ¥	Surendra Adhikari
+-  Project Assistants
+      ¥	Jeremie Mouginot
+      ¥	Bernd Scheuchi
