Index: /issm/mobile/android/ISSM/.classpath
===================================================================
--- /issm/mobile/android/ISSM/.classpath	(revision 17422)
+++ /issm/mobile/android/ISSM/.classpath	(revision 17423)
@@ -2,7 +2,8 @@
 <classpath>
 	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
-	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="gen"/>
+	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
 	<classpathentry kind="output" path="bin/classes"/>
 </classpath>
Index: /issm/mobile/android/ISSM/project.properties
===================================================================
--- /issm/mobile/android/ISSM/project.properties	(revision 17422)
+++ /issm/mobile/android/ISSM/project.properties	(revision 17423)
@@ -12,3 +12,3 @@
 
 # Project target.
-target=android-17
+target=android-18
Index: /issm/mobile/android/ISSM_APP/.classpath
===================================================================
--- /issm/mobile/android/ISSM_APP/.classpath	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/.classpath	(revision 17423)
@@ -2,5 +2,6 @@
 <classpath>
 	<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
-	<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+	<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="src" path="gen"/>
Index: /issm/mobile/android/ISSM_APP/.project
===================================================================
--- /issm/mobile/android/ISSM_APP/.project	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/.project	(revision 17423)
Index: /issm/mobile/android/ISSM_APP/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/AndroidManifest.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/AndroidManifest.xml	(revision 17423)
@@ -1,63 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="gov.nasa.jpl.issm"
+    android:installLocation="preferExternal"
     android:versionCode="1"
-    android:versionName="1.0"
-    android:installLocation="preferExternal" >
+    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" />
-	    
+        android:minSdkVersion="11"
+        android:targetSdkVersion="18" />
+
+    <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" >
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMAPP"
+            android:label="@string/title_activity_issm"
+            android:noHistory="true"
+            android:screenOrientation="portrait" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-				<category android:name="android.intent.category.LAUNCHER" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
-            </activity>
-            <activity
+        </activity>
+        <activity
             android:name="gov.nasa.jpl.issm.MenuPage"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.VideoActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_video_issm" >
+            android:label="@string/title_video_issm"
+            android:screenOrientation="landscape" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.ZoomImageViewActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.AboutActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
-         <activity
+        <activity
             android:name="gov.nasa.jpl.issm.TeamActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.ISSM"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.GalleryImage"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
-       
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMWebActivity"
+            android:label="@string/title_activity_issmweb_online" android:configChanges="orientation|screenSize">
+        </activity>
     </application>
 
Index: /issm/mobile/android/ISSM_APP/assets/about.html
===================================================================
--- /issm/mobile/android/ISSM_APP/assets/about.html	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/assets/about.html	(revision 17423)
@@ -1,11 +1,12 @@
 <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.
+	<body>
+		<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 <i>f</i>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.
+	</body>
 </html>
Index: /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/bin/AndroidManifest.xml	(revision 17423)
@@ -1,63 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="gov.nasa.jpl.issm"
+    android:installLocation="preferExternal"
     android:versionCode="1"
-    android:versionName="1.0"
-    android:installLocation="preferExternal" >
+    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" />
-	    
+        android:minSdkVersion="11"
+        android:targetSdkVersion="18" />
+
+    <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" >
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMAPP"
+            android:label="@string/title_activity_issm"
+            android:noHistory="true"
+            android:screenOrientation="portrait" >
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
-				<category android:name="android.intent.category.LAUNCHER" />
+
+                <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
-            </activity>
-            <activity
+        </activity>
+        <activity
             android:name="gov.nasa.jpl.issm.MenuPage"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.VideoActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_video_issm" >
+            android:label="@string/title_video_issm"
+            android:screenOrientation="landscape" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.ZoomImageViewActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.AboutActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
-         <activity
+        <activity
             android:name="gov.nasa.jpl.issm.TeamActivity"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.ISSM"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
         <activity
             android:name="gov.nasa.jpl.issm.GalleryImage"
-            android:screenOrientation="portrait"
-            android:label="@string/title_activity_issm" >
+            android:label="@string/title_activity_issm"
+            android:screenOrientation="portrait" >
         </activity>
-       
+        <activity
+            android:name="gov.nasa.jpl.issm.ISSMWebActivity"
+            android:label="@string/title_activity_issmweb_online" android:configChanges="orientation|screenSize">
+        </activity>
     </application>
 
Index: /issm/mobile/android/ISSM_APP/lint.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/lint.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/lint.xml	(revision 17423)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lint>
+</lint>
Index: /issm/mobile/android/ISSM_APP/project.properties
===================================================================
--- /issm/mobile/android/ISSM_APP/project.properties	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/project.properties	(revision 17423)
@@ -12,3 +12,3 @@
 
 # Project target.
-target=android-15
+target=android-18
Index: /issm/mobile/android/ISSM_APP/res/anim/left_out.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/left_out.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/anim/left_out.xml	(revision 17423)
@@ -9,5 +9,5 @@
     android:fromYDelta="0%"
     android:toYDelta="0%"
-    android:duration="1500"
+    android:duration="300"
     android:zAdjustment="top" />
  
Index: /issm/mobile/android/ISSM_APP/res/anim/left_out_fast.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/left_out_fast.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/anim/left_out_fast.xml	(revision 17423)
@@ -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="100"
+    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 17422)
+++ /issm/mobile/android/ISSM_APP/res/anim/right_in.xml	(revision 17423)
@@ -9,5 +9,5 @@
     android:fromYDelta="0%"
     android:toYDelta="0%"
-    android:duration="2000"
+    android:duration="300"
     android:zAdjustment="top" />
  
Index: /issm/mobile/android/ISSM_APP/res/anim/right_in_fast.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/anim/right_in_fast.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/anim/right_in_fast.xml	(revision 17423)
@@ -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="100"
+    android:zAdjustment="top" />
+ 
+</set>
Index: /issm/mobile/android/ISSM_APP/res/drawable/button_start.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/button_start.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/button_start.xml	(revision 17423)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:drawable="@drawable/start_button_pressed" android:state_pressed="true"/>
+    <item android:drawable="@drawable/start_button_normal"/>
+
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable/home_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/home_button.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/home_button.xml	(revision 17423)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    
+    <item android:drawable="@drawable/tab_button_pressed" 
+          android:state_pressed="true"		 		/>
+    <item android:drawable="@drawable/ic_home" />
+
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable/start_button_normal.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/start_button_normal.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/start_button_normal.xml	(revision 17423)
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle" >
+
+    <corners android:radius="6sp" />
+
+    <gradient
+        android:angle="180"
+        android:centerColor="@color/black"
+        android:endColor="@color/black"
+        android:startColor="@color/black" />
+
+</shape>
Index: /issm/mobile/android/ISSM_APP/res/drawable/start_button_pressed.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/start_button_pressed.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/start_button_pressed.xml	(revision 17423)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle" >
+
+    <corners android:radius="6sp" />
+
+    <stroke
+        android:width="2sp"
+        android:color="#0cf2de" />
+
+    <gradient
+        android:angle="180"
+        android:centerColor="#0cf2de"
+        android:endColor="@color/black"
+        android:startColor="@color/black" />
+
+</shape>
Index: /issm/mobile/android/ISSM_APP/res/drawable/tab_button.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/tab_button.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/tab_button.xml	(revision 17423)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android" >
+    
+    <item android:drawable="@drawable/tab_button_pressed" 
+          android:state_pressed="true"		 		/>
+<!--     <item android:drawable="@drawable/tab_button_normal" /> -->
+
+</selector>
Index: /issm/mobile/android/ISSM_APP/res/drawable/tab_button_pressed.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/drawable/tab_button_pressed.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/drawable/tab_button_pressed.xml	(revision 17423)
@@ -0,0 +1,8 @@
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle" >
+
+    <gradient
+        android:angle="90"
+        android:centerColor="#0cf2de" />
+
+</shape>
Index: /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/layout/aboutpage.xml	(revision 17423)
@@ -3,4 +3,5 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="@drawable/mainbackground"
     android:orientation="vertical" >
 
Index: /issm/mobile/android/ISSM_APP/res/layout/actionbar_top.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/actionbar_top.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/layout/actionbar_top.xml	(revision 17423)
@@ -0,0 +1,177 @@
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="50sp" >
+
+    <Button
+        android:id="@+id/play_tab"
+        android:layout_width="50sp"
+        android:layout_height="50sp"
+        android:layout_marginTop="3sp"
+        android:layout_marginLeft="3sp"
+        android:background="@drawable/ic_home" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginRight="20sp" />
+
+    <HorizontalScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:scrollbars="none" >
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="50sp" >
+
+            <Button
+                android:id="@+id/gallery_tab"
+                android:layout_width="100sp"
+                android:layout_height="50sp"
+                android:background="@drawable/tab_button"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="Gallery"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="20sp" />
+
+            <TextView
+                android:layout_width="10sp"
+                android:layout_height="50sp"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="|"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="15sp" />
+
+            <Button
+                android:id="@+id/video_tab"
+                android:layout_width="100sp"
+                android:layout_height="50sp"
+                android:background="@drawable/tab_button"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="Video"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="20sp" />
+
+            <TextView
+                android:layout_width="10sp"
+                android:layout_height="50sp"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="|"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="15sp" />
+
+            <Button
+                android:id="@+id/team_tab"
+                android:layout_width="100sp"
+                android:layout_height="50sp"
+                android:background="@drawable/tab_button"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="Team"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="20sp" />
+
+            <TextView
+                android:layout_width="10sp"
+                android:layout_height="50sp"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="|"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="15sp" />
+
+            <Button
+                android:id="@+id/about_tab"
+                android:layout_width="100sp"
+                android:layout_height="50sp"
+                android:background="@drawable/tab_button"
+                android:gravity="center"
+                android:shadowColor="#ffffff"
+                android:shadowDx="0"
+                android:shadowDy="0"
+                android:shadowRadius="8"
+                android:text="About"
+                android:textAlignment="center"
+                android:textColor="#ffffff"
+                android:textSize="20sp" />
+
+            <!-- <Button -->
+            <!-- android:id="@+id/play_tab" -->
+            <!-- android:layout_width="100sp" -->
+            <!-- android:layout_height="match_parent" -->
+            <!-- android:layout_marginBottom="-6sp" -->
+            <!-- android:background="@drawable/tab_button" -->
+            <!-- android:text="Start" -->
+            <!-- android:textColor="@color/tab_color" /> -->
+
+
+            <!-- <Button -->
+            <!-- android:id="@+id/gallery_tab" -->
+            <!-- android:layout_width="100sp" -->
+            <!-- android:layout_height="match_parent" -->
+            <!-- android:layout_marginBottom="-6sp" -->
+            <!-- android:background="@drawable/tab_button" -->
+            <!-- android:text="Gallery" -->
+            <!-- android:textColor="@color/tab_color" /> -->
+
+
+            <!-- <Button -->
+            <!-- android:id="@+id/video_tab" -->
+            <!-- android:layout_width="100sp" -->
+            <!-- android:layout_height="match_parent" -->
+            <!-- android:layout_marginBottom="-6sp" -->
+            <!-- android:background="@drawable/tab_button" -->
+            <!-- android:text="Video" -->
+            <!-- android:textColor="@color/tab_color" /> -->
+
+
+            <!-- <Button -->
+            <!-- android:id="@+id/team_tab" -->
+            <!-- android:layout_width="100sp" -->
+            <!-- android:layout_height="match_parent" -->
+            <!-- android:layout_marginBottom="-6sp" -->
+            <!-- android:background="@drawable/tab_button" -->
+            <!-- android:text="Team" -->
+            <!-- android:textColor="@color/tab_color" /> -->
+
+
+            <!-- <Button -->
+            <!-- android:id="@+id/about_tab" -->
+            <!-- android:layout_width="100sp" -->
+            <!-- android:layout_height="match_parent" -->
+            <!-- android:layout_marginBottom="-6sp" -->
+            <!-- android:background="@drawable/tab_button" -->
+            <!-- android:text="About" -->
+            <!-- android:textColor="@color/tab_color" /> -->
+        </LinearLayout>
+    </HorizontalScrollView>
+
+</LinearLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/actionbar_top_web.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/actionbar_top_web.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/layout/actionbar_top_web.xml	(revision 17423)
@@ -0,0 +1,23 @@
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="50sp" >
+
+    <Button
+        android:id="@+id/web_home"
+        android:layout_width="50sp"
+        android:layout_height="50sp"
+        android:layout_alignParentLeft="true"
+        android:layout_marginLeft="3sp"
+        android:layout_marginTop="3sp"
+        android:background="@drawable/ic_home" />
+
+    <Button
+        android:id="@+id/web_refresh"
+        android:layout_width="48sp"
+        android:layout_height="48sp"
+        android:layout_alignParentRight="true"
+        android:layout_marginTop="3sp"
+        android:layout_marginRight="5sp"
+        android:background="@drawable/ic_action_refresh"  />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/activity_issmweb_online.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/activity_issmweb_online.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/layout/activity_issmweb_online.xml	(revision 17423)
@@ -0,0 +1,12 @@
+<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"
+    tools:context=".ISSMWebOnlineActivity" >
+
+    <WebView
+        android:id="@+id/issmWeb"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/gallery.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/gallery.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/layout/gallery.xml	(revision 17423)
@@ -3,6 +3,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:background="@layout/roundcorner"
-    android:orientation="vertical" >
+    android:orientation="vertical"
+    android:background="@drawable/mainbackground" >
+<!--         android:background="@layout/roundcorner" -->
     
     <FrameLayout
Index: /issm/mobile/android/ISSM_APP/res/layout/menupage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/menupage.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/layout/menupage.xml	(revision 17423)
@@ -1,55 +1,75 @@
 <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" />
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent"
+    android:background="@drawable/mainbackground" >
 
-        <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" />
+    <TextView
+        android:layout_width="200sp"
+        android:layout_height="wrap_content"
+        android:layout_alignParentTop="true"
+        android:layout_centerHorizontal="true"
+        android:layout_marginTop="95sp"
+        android:gravity="center"
+        android:text="Welcome to"
+        android:textSize="40sp" />
 
-        <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/intro" -->
+    <!-- android:layout_width="wrap_content" -->
+    <!-- android:layout_height="wrap_content" -->
+    <!-- android:layout_marginLeft="15dp" -->
+    <!-- android:layout_marginTop="60dp" -->
+    <!-- android:background="@drawable/snow_button" -->
+    <!-- android:text="About" /> -->
 
-        <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>
+    <!-- <Button -->
+    <!-- android:id="@+id/video" -->
+    <!-- android:layout_width="wrap_content" -->
+    <!-- android:layout_height="wrap_content" -->
+    <!-- android:layout_alignParentRight="true" -->
+    <!-- android:layout_alignTop="@+id/intro" -->
+    <!-- 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_centerHorizontal="true"
+        android:layout_marginBottom="70sp"
+        android:background="@drawable/snow_button"
+        android:gravity="center"
+        android:shadowColor="#ffffff"
+        android:shadowDx="0"
+        android:shadowDy="0"
+        android:shadowRadius="8"
+        android:text="Start"
+        android:textAlignment="center"
+        android:textColor="#ffffff"
+        android:textSize="18sp" />
+
+    <!-- <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_alignParentRight="true" -->
+    <!-- android:layout_alignTop="@+id/start" -->
+    <!-- android:layout_marginRight="19dp" -->
+    <!-- android:background="@drawable/snow_button" -->
+    <!-- android:text="Gallery" /> -->
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/teampage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/teampage.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/layout/teampage.xml	(revision 17423)
@@ -1,11 +1,12 @@
 <?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<RelativeLayout 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>
+    <WebView
+        android:id="@+id/teampage"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent" />
+
+</RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/layout/videopage.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/layout/videopage.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/layout/videopage.xml	(revision 17423)
@@ -9,10 +9,17 @@
     
 
-        <VideoView
-            android:id="@+id/videoview"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_centerInParent="true"
-             />
+<!--         <VideoView -->
+<!--             android:id="@+id/videoview" -->
+<!--             android:layout_height="match_parent" -->
+<!--             android:layout_width="match_parent" -->
+<!--             android:layout_centerInParent="true" -->
+<!--              /> -->
+	<com.google.android.youtube.player.YouTubePlayerView
+        android:id="@+id/youtubeplayer"
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent">
+    </com.google.android.youtube.player.YouTubePlayerView>
+	
+        
 
 </RelativeLayout>
Index: /issm/mobile/android/ISSM_APP/res/menu/issmweb_online.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/menu/issmweb_online.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/menu/issmweb_online.xml	(revision 17423)
@@ -0,0 +1,9 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <item
+        android:id="@+id/action_settings"
+        android:orderInCategory="100"
+        android:showAsAction="never"
+        android:title="@string/action_settings"/>
+
+</menu>
Index: /issm/mobile/android/ISSM_APP/res/menu/team_menu.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/menu/team_menu.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/menu/team_menu.xml	(revision 17423)
@@ -0,0 +1,8 @@
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+
+    <item
+        android:id="@+id/refresh"
+        android:icon="@drawable/ic_action_search"
+        android:title="Refresh">
+    </item>
+</menu>
Index: /issm/mobile/android/ISSM_APP/res/values-sw600dp/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values-sw600dp/dimens.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/values-sw600dp/dimens.xml	(revision 17423)
@@ -0,0 +1,8 @@
+<resources>
+
+    <!--
+         Customize dimensions originally defined in res/values/dimens.xml (such as
+         screen margins) for sw600dp devices (e.g. 7" tablets) here.
+    -->
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values-sw720dp-land/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values-sw720dp-land/dimens.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/values-sw720dp-land/dimens.xml	(revision 17423)
@@ -0,0 +1,9 @@
+<resources>
+
+    <!--
+         Customize dimensions originally defined in res/values/dimens.xml (such as
+         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
+    -->
+    <dimen name="activity_horizontal_margin">128dp</dimen>
+
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/color.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/color.xml	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/res/values/color.xml	(revision 17423)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <color name="white">#FFFFFF</color>
+ <color name="yellow">#FFFF00</color>
+ <color name="fuchsia">#FF00FF</color>
+ <color name="red">#FF0000</color>
+ <color name="silver">#C0C0C0</color>
+ <color name="gray">#808080</color>
+ <color name="olive">#808000</color>
+ <color name="purple">#800080</color>
+ <color name="maroon">#800000</color>
+ <color name="aqua">#00FFFF</color>
+ <color name="lime">#00FF00</color>
+ <color name="teal">#008080</color>
+ <color name="green">#008000</color>
+ <color name="blue">#0000FF</color>
+ <color name="navy">#000080</color>
+ <color name="black">#000000</color>
+ <color name="tab_color">#0320fd</color>
+</resources>
Index: /issm/mobile/android/ISSM_APP/res/values/dimens.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/dimens.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/values/dimens.xml	(revision 17423)
@@ -1,2 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
 <resources>
 
@@ -4,4 +5,6 @@
     <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_APP/res/values/strings.xml
===================================================================
--- /issm/mobile/android/ISSM_APP/res/values/strings.xml	(revision 17422)
+++ /issm/mobile/android/ISSM_APP/res/values/strings.xml	(revision 17423)
@@ -1,2 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
 <resources>
 
@@ -8,5 +9,5 @@
     <string name="title_activity_issm">ISSM</string>
     <string name="color_prompt">Pick a Color Map</string>
- 
+
     <string-array name="colormap_array">
         <item>HSV</item>
@@ -23,6 +24,9 @@
         <item>Summer</item>
     </string-array>
-        <string name="Greenland">Run Greenland Model</string>
-        <string name="Antarctica">Run Antarctica Model</string>
+
+    <string name="Greenland">Run Greenland Model</string>
+    <string name="Antarctica">Run Antarctica Model</string>
+    <string name="title_activity_issmweb_online">ISSMWebOnlineActivity</string>
+    <string name="action_settings">Settings</string>
 
 </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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/AboutActivity.java	(revision 17423)
@@ -1,30 +1,136 @@
 package gov.nasa.jpl.issm;
 
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import android.app.ActionBar;
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
+import android.util.Log;
+import android.view.View;
 import android.webkit.WebView;
+import android.widget.Button;
 import gov.nasa.jpl.issm.MyWebViewClient;
 
+public class AboutActivity extends BaseActivity {
 
-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);
-	   }
+	String SrcPath = "file:///android_asset/";
+	String 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);
+		transition();
+		loadAboutFile();
+		// Go back to the main menu
+		Button homeTab = (Button) findViewById(R.id.play_tab);
+		homeTab.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(AboutActivity.this, MenuPage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// navigate to youtube video
+		Button video = (Button) findViewById(R.id.video_tab);
+		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(AboutActivity.this, VideoActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// pop up a text box that contains information about ISSM
+		// final Button intro = (Button) findViewById(R.id.about_tab);
+		// 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(AboutActivity.this, AboutActivity.class);
+		// startActivity(i);
+		// }
+		// });
+		// Show Team Website
+		Button visitus = (Button) findViewById(R.id.team_tab);
+		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(AboutActivity.this, TeamActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// start gallery image
+		Button galleryImage = (Button) findViewById(R.id.gallery_tab);
+		galleryImage.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(AboutActivity.this, GalleryImage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+		myWebView = (WebView) findViewById(R.id.aboutpage);
+		myWebView.setWebViewClient(new MyWebViewClient());
+		// myWebView.getSettings().setJavaScriptEnabled(true);
+		// myWebView.loadUrl(SrcPath + "about.html");
+		myWebView
+				.loadDataWithBaseURL(SrcPath, html, "text/html", "utf-8", null);
+	}
+
+	@Override
+	public void onBackPressed() {
+		Intent i = new Intent(AboutActivity.this, MenuPage.class);
+		startActivity(i);
+		finish();
+	}
+
+	private void loadAboutFile() {
+		InputStream is;
+		byte[] buffer = null;
+		try {
+			is = getResources().getAssets().open("about.html");
+			int size = is.available();
+			buffer = new byte[size];
+			is.read(buffer);
+			is.close();
+		} catch (IOException e1) {
+			// TODO Auto-generated catch block
+			e1.printStackTrace();
+		}
+		html = new String(buffer);
+		html = html.replace("old string", "new string");
+	}
 
 }
Index: /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/BaseActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/BaseActivity.java	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/BaseActivity.java	(revision 17423)
@@ -0,0 +1,24 @@
+package gov.nasa.jpl.issm;
+
+import android.app.ActionBar;
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
+import android.widget.Toast;
+
+public class BaseActivity extends Activity {
+
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		getActionBar().setCustomView(R.layout.actionbar_top);
+		getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+		// transition();
+	}
+
+	public void transition() {
+		overridePendingTransition(R.anim.right_in, R.anim.left_out);
+	}
+}
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorBar.java	(revision 17423)
@@ -7,111 +7,114 @@
 import android.util.AttributeSet;
 import android.view.View;
+
 /////////////////////////////////////////////////////////////
-public class ColorBar extends View
-{
+public class ColorBar extends View {
 	Paint paint = new Paint();
 	Paint textpaint = new Paint();
-	//coordinate of the colorbar
-    private int width = 30;
+	// coordinate of the colorbar
+	private int width = 30;
 	private int start_x = 10;
 	private int start_y = 10;
-	//private int end_y = 0;
+	// private int end_y = 0;
 	boolean touch;
-	final int MAX_SCALING =255;
-	double [][] colorBuffer;
+	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);
+
+	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)
-    {
+		textpaint.setTextSize(20);
+		touch = false;
+	}
 
-	      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;
-    }*/
-//----------------------------------------------------------------        
+	// ----------------------------------------------------------------
+	// 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
-{
+
+// //////////////////////////////////////////////////////////////////////////
+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;}
+
+	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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMap.java	(revision 17423)
@@ -2,931 +2,535 @@
 
 /////////////////////////////////////////////////////////
-class ColorMap
-{
+class ColorMap {
 	private double[][] d;
 	final int rowNumber = 64;
-//-------------------------------------------------------
-	public ColorMap()
-	{
+
+	// -------------------------------------------------------
+	public ColorMap() {
 		setDefault();
 	}
-//-------------------------------------------------------
-	public double[][] getColorBuffer()
-	{
+
+	// -------------------------------------------------------
+	public double[][] getColorBuffer() {
 		return d;
 	}
-//--------------------------------------------------------
-	public void setColor(String color)
-	{
+
+	// --------------------------------------------------------
+	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];
+		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;
 		}
-		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);
-	}	
-//-------------------------------------------------------
+
+		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	
-/////////////////////////////////////////////////////////
+// ///////////////////////////////////////////////////////
+
+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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ColorMenu.java	(revision 17423)
@@ -4,5 +4,5 @@
 import android.widget.Spinner;
 
-public class ColorMenu extends Spinner{
+public class ColorMenu extends Spinner {
 
 	public ColorMenu(Context context) {
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/DisplayNextView.java	(revision 17423)
@@ -20,5 +20,5 @@
 		this.text = text;
 	}
-	
+
 	public DisplayNextView(boolean currentView, ImageView front, ImageView back) {
 		mCurrentView = currentView;
@@ -32,5 +32,5 @@
 
 	public void onAnimationEnd(Animation animation) {
-		if(containTextView)
+		if (containTextView)
 			mainImage.post(new SwapViews(mCurrentView, mainImage, text));
 		else
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/FlipAnimation.java	(revision 17423)
@@ -6,6 +6,5 @@
 import android.view.animation.Transformation;
 
-public class FlipAnimation  extends Animation 
-{
+public class FlipAnimation extends Animation {
 	private final float mFromDegrees;
 	private final float mToDegrees;
@@ -13,8 +12,7 @@
 	private final float mCenterY;
 	private Camera mCamera;
-	
-	public FlipAnimation(float fromDegrees, float toDegrees,
-	   float centerX, float centerY) 
-	{
+
+	public FlipAnimation(float fromDegrees, float toDegrees, float centerX,
+			float centerY) {
 		mFromDegrees = fromDegrees;
 		mToDegrees = toDegrees;
@@ -22,33 +20,34 @@
 		mCenterY = centerY;
 	}
-		
+
 	@Override
-	public void initialize(int width, int height, int parentWidth, int parentHeight) 
-	{
+	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);
-		
+		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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryAdapter.java	(revision 17423)
@@ -12,67 +12,63 @@
 public class GalleryAdapter extends BaseAdapter {
 
-		private Activity context;
+	private Activity context;
 
-		private static ImageView imageView;
+	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;
+	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));
 
-		@Override
-		public int getCount() {
-			return plotsImages.size();
-		}
+		return imageView;
+	}
 
-		@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;
-		}
+	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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryDescription.java	(revision 17423)
@@ -9,13 +9,14 @@
 
 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));
+
+	// ----------------------------------------------------------------
+	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 = ":";
@@ -23,13 +24,13 @@
 		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.
+			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]);
@@ -40,9 +41,8 @@
 		}
 	}
-//----------------------------------------------------------------	
-	public String getDescription(int index)
-	{
-		if(index >= description.size())
-		{
+
+	// ----------------------------------------------------------------
+	public String getDescription(int index) {
+		if (index >= description.size()) {
 			return "There is no detailed description for this image yet!";
 		}
@@ -50,3 +50,3 @@
 	}
 }
-///////////////////////////////////////////////////////////////////
+// /////////////////////////////////////////////////////////////////
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/GalleryImage.java	(revision 17423)
@@ -1,15 +1,27 @@
 package gov.nasa.jpl.issm;
 
+import java.io.BufferedInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.DoubleBuffer;
 import java.util.ArrayList;
 import java.util.List;
+import android.annotation.TargetApi;
 import android.app.Activity;
+import android.content.Context;
 import android.content.Intent;
 import android.graphics.Bitmap;
+import android.os.Build;
 import android.os.Bundle;
+import android.util.Log;
 import android.view.View;
 import android.view.View.OnClickListener;
+import android.view.ViewGroup.LayoutParams;
 import android.view.animation.AccelerateInterpolator;
 import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemSelectedListener;
+import android.widget.Button;
+import android.widget.RelativeLayout;
 import android.widget.TextView;
 import android.widget.Gallery;
@@ -17,6 +29,6 @@
 import android.widget.ImageView.ScaleType;
 
-public class GalleryImage extends Activity {
-	
+public class GalleryImage extends BaseActivity {
+
 	private GalleryDescription description;
 	private ImageView selectedImageView;
@@ -29,12 +41,13 @@
 
 	private Gallery gallery;
+	private Bitmap b;
 
 	private int selectedImagePosition = 0;
 
-	//private List<Drawable> drawables;
+	// private List<Drawable> drawables;
 	private List<Integer> drawables;
 
 	private GalleryAdapter galImageAdapter;
-	
+
 	private boolean isFirstImage = true;
 
@@ -43,4 +56,13 @@
 		super.onCreate(savedInstanceState);
 		setContentView(R.layout.gallery);
+		transition();
+		// int w = getResources().getDisplayMetrics().widthPixels;
+		// long h = w / 16 * 9;
+		// LayoutParams params = ((ImageView)
+		// findViewById(R.id.container)).getLayoutParams();
+		// params.height = (int) h;
+		// params.width = (int) w;
+		// Log.i("Height: ", String.valueOf(params.height));
+		// Log.i("Width: ", String.valueOf(params.width));
 
 		getDrawablesList();
@@ -51,7 +73,7 @@
 
 		selectedImageView = (ImageView) findViewById(R.id.front_view);
-		//selectedTextView = (TextView) findViewById(R.id.back_view);
+		// selectedTextView = (TextView) findViewById(R.id.back_view);
 		selectedTextView = (TextView) findViewById(R.id.description);
-		//selectedTextView.setVisibility(View.GONE);
+		// selectedTextView.setVisibility(View.GONE);
 		photoState = (ImageView) findViewById(R.id.photo_stage);
 		infoState = (ImageView) findViewById(R.id.info_stage);
@@ -62,28 +84,88 @@
 		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;
-			    }
-			   }
-			});          
+		// Go back to the main menu
+		Button homeTab = (Button) findViewById(R.id.play_tab);
+		homeTab.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(GalleryImage.this, MenuPage.class);
+				// i.putExtra("pathToFile", MenuPage.getISSMPath());
+				startActivity(i);
+				finish();
+			}
+		});
+		// navigate to youtube video
+		Button video = (Button) findViewById(R.id.video_tab);
+		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(GalleryImage.this, VideoActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// pop up a text box that contains information about ISSM
+		final Button intro = (Button) findViewById(R.id.about_tab);
+		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(GalleryImage.this, AboutActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// Show Team Website
+		Button visitus = (Button) findViewById(R.id.team_tab);
+		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(GalleryImage.this, TeamActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+		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() {
@@ -94,5 +176,4 @@
 				if (selectedImagePosition > 0) {
 					--selectedImagePosition;
-
 				}
 
@@ -108,5 +189,4 @@
 				if (selectedImagePosition < drawables.size() - 1) {
 					++selectedImagePosition;
-
 				}
 
@@ -119,20 +199,24 @@
 
 			@Override
-			public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
+			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));
-
+				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));
-
+					leftArrowImageView.setImageDrawable(getResources()
+							.getDrawable(R.drawable.arrow_left_disabled));
 				} else if (selectedImagePosition == drawables.size() - 1) {
 
-					rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
+					rightArrowImageView.setImageDrawable(getResources()
+							.getDrawable(R.drawable.arrow_right_disabled));
 				}
 
@@ -160,5 +244,6 @@
 		if (drawables.size() == 1) {
 
-			rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
+			rightArrowImageView.setImageDrawable(getResources().getDrawable(
+					R.drawable.arrow_right_disabled));
 		}
 
@@ -172,5 +257,6 @@
 
 			ImageView imageView = (ImageView) gallery.getChildAt(i);
-			imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
+			imageView.setBackgroundDrawable(getResources().getDrawable(
+					R.drawable.image_border));
 			imageView.setPadding(3, 3, 3, 3);
 
@@ -178,5 +264,6 @@
 
 		ImageView imageView = (ImageView) gallery.getSelectedView();
-		imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
+		imageView.setBackgroundDrawable(getResources().getDrawable(
+				R.drawable.selected_image_border));
 		imageView.setPadding(3, 3, 3, 3);
 	}
@@ -186,26 +273,43 @@
 		drawables = new ArrayList<Integer>();
 		int resID;
-		for (int i = 0; i < 17; i++)
-		{
-			resID=getResources().getIdentifier("image"+i, "drawable", getPackageName());
+		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;
+
+		int width = (int) (getResources().getDisplayMetrics().widthPixels);
+		int height = (int) (getResources().getDisplayMetrics().heightPixels);
 		Bitmap b;
-		b = ImageResizer.decodeSampledBitmapFromResource(getResources(), drawables.get(selectedImagePosition), width, height);
-		b = Bitmap.createScaledBitmap(b, width, height, true);
+		// pre-load implementation
+		b = ImageList.getLargeImages().get(selectedImagePosition);
+		// 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) 
-	{
+		selectedTextView.setText(description
+				.getDescription(selectedImagePosition));
+		// resource implementation
+		// 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));
+		// asset implementation
+		// b = ImageResizer.decodeSampledBitmapFromAsset(is,
+		// width, height);
+		// selectedImageView.setImageBitmap(Bitmap.createScaledBitmap(b, width,
+		// height, true));
+		// 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;
@@ -214,21 +318,20 @@
 		// 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);
+		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));
+		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)
-		{
+		rotation2.setAnimationListener(new DisplayNextView(isFirstImage,
+				selectedImageView, selectedTextView));
+
+		if (isFirstImage) {
 			infoState.startAnimation(rotation);
 			selectedImageView.startAnimation(rotation2);
@@ -239,3 +342,10 @@
 
 	}
+
+	@Override
+	public void onBackPressed() {
+		Intent i = new Intent(GalleryImage.this, MenuPage.class);
+		startActivity(i);
+		finish();
+	}
 }
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSM.java	(revision 17423)
@@ -4,20 +4,22 @@
 import java.nio.ByteOrder;
 import java.nio.DoubleBuffer;
+
+import android.app.ProgressDialog;
+import android.content.Intent;
 import android.opengl.GLSurfaceView;
 import android.os.AsyncTask;
+import android.os.Build;
 import android.os.Bundle;
-import android.app.Activity;
-import android.app.ProgressDialog;
 import android.util.DisplayMetrics;
 import android.view.GestureDetector;
+import android.view.GestureDetector.OnDoubleTapListener;
+import android.view.GestureDetector.OnGestureListener;
 import android.view.Gravity;
 import android.view.KeyEvent;
 import android.view.Menu;
 import android.view.MenuInflater;
+import android.view.MotionEvent;
 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;
@@ -33,20 +35,24 @@
 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 static final int INVISIBLE = 0;
+// Loading the ISSM library locally
+// private IssmJni issmNative;
+// ,sealevel;
+
+public class ISSM extends BaseActivity implements OnClickListener,
+		OnGestureListener, OnDoubleTapListener {
+	// private static final int INVISIBLE = 0;
 	private int screenWidth;
 	private int screenHeight;
 	private DoubleBuffer buff;
-	private IssmJni issmNative;
+	// Loading the ISSM library locally
+	// private IssmJni issmNative;
 	private String mapName;
 	private String issmFolder;
 	private int size;
-    private GLSurfaceView mGLView;
+	private GLSurfaceView mGLView;
 	private FrameLayout frame;
 	private ColorMap colorMap;
-	private int friction, temperature;//,sealevel;
+	private int friction, temperature;// ,sealevel;
 	private final int MINIMUM = 90;
 	private final int OFFSET = 10;
@@ -57,292 +63,333 @@
 	private SliderMenu sliders;
 	private ImageView defaultMap;
-	private GestureDetector mDetector; 
+	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);		
+	private String url = "http://blackhawk2.jpl.nasa.gov/issm/solve?callback=?";
+
+	// ------------------------------------------------------------------------------------------------
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.main_issm);
+		transition();
+
+		// 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");
+			}
+		}
+		Button homeTab = (Button) findViewById(R.id.play_tab);
+		homeTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				Intent i = new Intent(ISSM.this, MenuPage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+		Button galleryTab = (Button) findViewById(R.id.gallery_tab);
+		galleryTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				Intent i = new Intent(ISSM.this, GalleryImage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		Button videoTab = (Button) findViewById(R.id.video_tab);
+		videoTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			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(ISSM.this, VideoActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		Button aboutTab = (Button) findViewById(R.id.about_tab);
+		aboutTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				Intent i = new Intent(ISSM.this, AboutActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		Button teamTab = (Button) findViewById(R.id.team_tab);
+		teamTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			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(ISSM.this, TeamActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+		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);
+		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()
-        {
+		// 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)
-				{
+				if (item != 0) {
 					String color = (String) spinner.getItemAtPosition(item);
 					colorMap.setColor(color);
 					colorBar.setColorMap(colorMap);
-					drawFigure();
+					// 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="StressbalanceSolution";
-    	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);
+			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 = "StressbalanceSolution";
+		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);
 				}
-				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>
-   {
+			});
+		}
+		}
+	}
+
+	// ----------------------------------------------------------------------------------
+	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)
-					{
+		protected Boolean doInBackground(Integer... target) {
+			Thread thread = new Thread() {
+				public void run() {
+					for (int i = 0; i <= 100; i += 5) {
 						try {
 							Thread.sleep(300);
@@ -356,12 +403,11 @@
 			};
 			thread.start();
-			issmNative.solveISSMModel(target[0],buff);
-			//System.out.println("temperature = " + target[1]);
-			//issmNative.solveISSMModel(target[0],target[1],buff);
+			// issmNative.solveISSMModel(target[0],buff);
+			// System.out.println("temperature = " + target[1]);
+			// issmNative.solveISSMModel(target[0],target[1],buff);
 			return true;
 		}
-		
-		protected void onPreExecute()
-		{
+
+		protected void onPreExecute() {
 			super.onPostExecute(null);
 			dialog.setCancelable(true);
@@ -372,17 +418,16 @@
 			dialog.show();
 		}
-		protected void onProgressUpdate(Integer ... value)
-		{
+
+		protected void onProgressUpdate(Integer... value) {
 			super.onProgressUpdate();
 			dialog.setProgress(value[0]);
-			if(value[0] == 100)
-			{
+			if (value[0] == 100) {
 				dialog.dismiss();
-				if(defaultMap.getDrawable().isVisible() == true )
+				if (defaultMap.getDrawable().isVisible() == true)
 					fadeImage();
 			}
 		}
-		protected void onPostExecute(Boolean result)
-		{
+
+		protected void onPostExecute(Boolean result) {
 			super.onPostExecute(result);
 			try {
@@ -392,63 +437,78 @@
 				e.printStackTrace();
 			}
-			if(result)
-			{ 
+			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
+
+		}
+
+	}
+
+	// -------------------------------------------------------------------------------------
+
+	@Override
+	public void onBackPressed() {
+		Intent i = new Intent(ISSM.this, MenuPage.class);
+		startActivity(i);
+		finish();
+	}
+
+	// -----------------------------------------------------------------------------------
+	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;
-	}
+		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;
+		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;
-	}
+		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;
-	}
-//-------------------------------------------------------------------------------------------	 
+		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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMAPP.java	(revision 17423)
@@ -6,10 +6,15 @@
 import java.io.InputStream;
 import java.io.OutputStream;
+
 import android.app.Activity;
+import android.app.AlertDialog;
 import android.app.ProgressDialog;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 import android.os.AsyncTask;
 import android.os.Bundle;
 import android.os.Environment;
 import android.util.Log;
+import android.view.Window;
 import android.view.animation.Animation;
 import android.view.animation.AnimationUtils;
@@ -17,145 +22,240 @@
 import android.widget.LinearLayout;
 import android.widget.Toast;
+import android.content.Context;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.content.SharedPreferences;
 import android.content.res.AssetManager;
+
 /////////////////////////////////////////////////////////////////////////// 
-public class ISSMAPP extends Activity
-{
+public class ISSMAPP extends Activity {
 	ImageList imageList;
 	private static final String PREFERENCE_FIRST_RUN = null;
 	public static String extStorageDirectory;
-	private String issmFolder; 
+	private String issmFolder;
 	SharedPreferences settings;
 	private ProgressDialog progressDialog;
-//------------------------------------------------------------------------	
-	public void onCreate(Bundle icicle)
-	{
+
+	// ------------------------------------------------------------------------
+	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;
+		requestWindowFeature(Window.FEATURE_NO_TITLE);
+		setContentView(R.layout.splashscreen);
+		settings = this.getSharedPreferences("MenuPage", 0);
+		final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+		if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
+				|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
+
+			// temporary: display modes without messing with the network to
+			// be able to access offline mode
+			// AlertDialog.Builder builder = new AlertDialog.Builder(this);
+			// builder.setMessage("Pick a mode");
+			// CharSequence[] options = { "Native", "Offline", "Online" };
+			// builder.setItems(options, new DialogInterface.OnClickListener() {
+			// public void onClick(DialogInterface dialog, int which) {
+			// switch (which) {
+			// case 0:
+			// boolean firstrun = settings.getBoolean(
+			// PREFERENCE_FIRST_RUN, true);
+			// extStorageDirectory = Environment
+			// .getExternalStorageDirectory().toString();
+			// issmFolder = extStorageDirectory + "/ISSM/input_files/";
+			// imageList = new ImageList(ISSMAPP.this);
+			// new CopyDataTask().execute(firstrun);
+			// break;
+			// case 1:
+			// Intent j = new Intent(ISSMAPP.this,
+			// ISSMWebActivity.class);
+			// j.putExtra("mode", 1);
+			// startActivity(j);
+			// finish();
+			// break;
+			// case 2:
+			// Intent i = new Intent(ISSMAPP.this,
+			// ISSMWebActivity.class);
+			// i.putExtra("mode", 0);
+			// startActivity(i);
+			// finish();
+			// break;
+			// }
+			// }
+			// });
+			// builder.create().show();
+			new AlertDialog.Builder(this)
+					.setMessage("Pick a mode")
+					.setCancelable(false)
+					.setPositiveButton("Online",
+							new DialogInterface.OnClickListener() {
+								public void onClick(DialogInterface dialog,
+										int id) {
+									Intent i = new Intent(ISSMAPP.this,
+											ISSMWebActivity.class);
+									i.putExtra("mode", 0);
+									startActivity(i);
+									finish();
+								}
+							})
+					.setNeutralButton("Offline",
+							new DialogInterface.OnClickListener() {
+								public void onClick(DialogInterface dialog,
+										int id) {
+									Intent i = new Intent(ISSMAPP.this,
+											ISSMWebActivity.class);
+									i.putExtra("mode", 1);
+									startActivity(i);
+									finish();
+								}
+							})
+					.setNegativeButton("Native",
+							new DialogInterface.OnClickListener() {
+								public void onClick(DialogInterface dialog,
+										int id) {
+									boolean firstrun = settings.getBoolean(
+											PREFERENCE_FIRST_RUN, true);
+									extStorageDirectory = Environment
+											.getExternalStorageDirectory()
+											.toString();
+									issmFolder = extStorageDirectory
+											+ "/ISSM/input_files/";
+									imageList = new ImageList(ISSMAPP.this);
+									new CopyDataTask().execute(firstrun);
+								}
+							}).show();
+
+		} else {
+			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();
+			imageList.decodeLargeImage();
+			// 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();
+			Log.i("imageList size: ",
+					String.valueOf(ImageList.getImageList().size()));
+			Log.i("largeImageList size: ",
+					String.valueOf(ImageList.getLargeImages().size()));
+			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();
 			}
-			@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();
-	    }
-
-	}
-//----------------------------------------------------------------------------
+			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);
-		    }
-//-------------------------------------------------------------------------------		 
+	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);
+		}
+	}
+
+	// ----------------------------------------------------------------------------
+	public void transition() {
+		overridePendingTransition(R.anim.left_out_fast, R.anim.left_out);
+	}
+
+	// ----------------------------------------------------------------------------
+	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/ISSMWebActivity.java
===================================================================
--- /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMWebActivity.java	(revision 17423)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ISSMWebActivity.java	(revision 17423)
@@ -0,0 +1,145 @@
+package gov.nasa.jpl.issm;
+
+import android.net.NetworkInfo;
+import android.os.Bundle;
+import android.app.ActionBar;
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.app.ProgressDialog;
+import android.content.DialogInterface;
+import android.content.Intent;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.webkit.WebView;
+import android.widget.Button;
+
+public class ISSMWebActivity extends Activity {
+
+	// URL of the index page of the ISSM web application
+	private String srcPath = "http://issm.jpl.nasa.gov/externalicelab/index.html";
+	private String offPath = "file:///android_asset/externalicelab/index.html";
+	private final String KEY = "mode";
+	private int MODE;
+	// private String srcPath =
+	// "http://www.csupomona.edu/~tqnguyen/CIS311/Project3/index.html";
+	private WebView myWebView;
+
+	@Override
+	protected void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.activity_issmweb_online);
+		getActionBar().setCustomView(R.layout.actionbar_top_web);
+		getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+		MODE = getIntent().getExtras().getInt(KEY);
+
+		Button webHome = (Button) findViewById(R.id.web_home);
+		webHome.setOnClickListener(new OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				if (MODE == 0) {
+					myWebView.loadUrl(srcPath);
+				} else {
+					myWebView.loadUrl(offPath);
+				}
+			}
+
+		});
+
+		Button webRefresh = (Button) findViewById(R.id.web_refresh);
+		webRefresh.setOnClickListener(new OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				myWebView.loadUrl(myWebView.getOriginalUrl());
+				// Log.i("srcUrl: ", srcPath);
+				// Log.i("newUrl: ", myWebView.getOriginalUrl());
+			}
+
+		});
+
+		// final ProgressDialog loading = new ProgressDialog(this);
+		// loading.setMessage("Loading page...");
+		// loading.setCancelable(false);
+		// loading.show();
+
+		myWebView = (WebView) findViewById(R.id.issmWeb);
+		myWebView.setWebViewClient(new MyWebViewClient() {
+			// @Override
+			// public boolean shouldOverrideUrlLoading(WebView view, String url)
+			// {
+			// loading.show();
+			// return false;
+			// }
+			//
+			// @Override
+			// public void onPageFinished(WebView view, String url) {
+			// // hide loading
+			// loading.dismiss();
+			// }
+		});
+		myWebView.getSettings().setJavaScriptEnabled(true);
+		myWebView.getSettings().setLoadWithOverviewMode(true);
+		myWebView.getSettings().setUseWideViewPort(true);
+		// myWebView.getSettings().setBuiltInZoomControls(true);
+		if (MODE == 0) {
+			myWebView.loadUrl(srcPath);
+		} else {
+			myWebView.loadUrl(offPath);
+		}
+	}
+
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		getMenuInflater().inflate(R.menu.issmweb_online, menu);
+		return true;
+	}
+
+	@Override
+	public void onBackPressed() {
+		if (MODE == 0) {
+			if (myWebView.canGoBack()
+					&& !myWebView.getOriginalUrl().equals(srcPath)) {
+				myWebView.goBack();
+			} else {
+				showAlertBuilder();
+			}
+		} else {
+			if (myWebView.canGoBack()
+					&& !myWebView.getOriginalUrl().equals(offPath)) {
+				myWebView.goBack();
+			} else {
+				showAlertBuilder();
+			}
+		}
+	}
+
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+		switch (item.getItemId()) {
+		case R.id.refresh:
+			myWebView.loadUrl(myWebView.getOriginalUrl());
+			break;
+		default:
+			break;
+		}
+
+		return true;
+	}
+
+	private void showAlertBuilder() {
+		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) {
+								ISSMWebActivity.this.finish();
+							}
+						}).setNegativeButton("No", null).show();
+	}
+
+}
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageList.java	(revision 17423)
@@ -1,4 +1,5 @@
 package gov.nasa.jpl.issm;
 
+import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.ByteArrayOutputStream;
@@ -11,63 +12,120 @@
 
 import android.content.Context;
+import android.content.res.AssetManager;
 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;
+public class ImageList {
+	private static ArrayList<Bitmap> imageList;
+	private static ArrayList<Bitmap> largeImageList;
+	private static ArrayList<Bitmap> imageListFromURL;
 	private Context context;
-	final int nImage = 17; 
-//----------------------------------------------------------	
-	public ImageList(Context context)
-	{
-		imageList = new ArrayList <Bitmap>();
-		imageListFromURL = new ArrayList <Bitmap>();
+	final int nImage = 17;
+
+	// ----------------------------------------------------------
+	public ImageList(Context context) {
+		imageList = new ArrayList<Bitmap>();
+		largeImageList = new ArrayList<Bitmap>();
+		imageListFromURL = new ArrayList<Bitmap>();
 		this.context = context;
 	}
-//----------------------------------------------------------
-	public void decodeAndResizeImageFromURL()
-	{
+
+	// ----------------------------------------------------------
+	public void decodeAndResizeImageFromURL() {
 		URL url;
-		for(int i =0; i <1; i++)
-		{
-			try 
-			{
+		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]);
-		    }
+				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()
-	{
+
+	// ----------------------------------------------------------
+	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));
+		InputStream is = null;
+		for (int i = 0; i < nImage; i++) {
+			// asset implementation
+			try {
+				is = new BufferedInputStream(context.getResources().getAssets()
+						.open("image" + i + ".png"));
+				imageList.add(ImageResizer.decodeSampledBitmapFromAsset(is, 50,
+						50));
+				// is.close();
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			// resource implementation
+			// resID = context.getResources().getIdentifier("image" + i,
+			// "drawable", context.getPackageName());
+			// imageList.add(ImageResizer.decodeSampledBitmapFromResource(
+			// context.getResources(), resID, 50, 50));
+			System.gc();
 		}
 	}
-//----------------------------------------------------------
-	public static ArrayList<Bitmap> getImageList()
-	{
+
+	// ------------------------------------------------------------------------
+	// This method is use to pre-load all the large images into a Bitmap
+	// ArrayList
+	public void decodeLargeImage() {
+		int width = (int) (context.getResources().getDisplayMetrics().widthPixels);
+		int height = (int) (context.getResources().getDisplayMetrics().heightPixels);
+		InputStream is = null;
+		for (int i = 0; i < nImage; i++) {
+			// asset implementation
+			try {
+				is = new BufferedInputStream(context.getResources().getAssets()
+						.open("image" + i + ".png"));
+				largeImageList.add(ImageResizer.decodeSampledBitmapFromAsset(
+						is, width, height));
+				// is.close();
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
+			System.gc();
+		}
+	}
+
+	// public void decodeAndResizeImage() {
+	// AssetManager assets = context.getAssets();
+	// InputStream is = null;
+	// for (int i = 0; i < nImage; i++) {
+	// try {
+	// is = new BufferedInputStream(assets.open("image" + i + ".png"));
+	// } catch (IOException e) {
+	// // TODO Auto-generated catch block
+	// e.printStackTrace();
+	// }
+	// imageList.add(ImageResizer.decodeSampledBitmapFromAsset(is, 50, 50));
+	// }
+	// }
+
+	// ----------------------------------------------------------
+	public static ArrayList<Bitmap> getImageList() {
 		return imageList;
 	}
-//----------------------------------------------------------
-		public static ArrayList<Bitmap> getImageListFromURL()
-		{
-			return imageListFromURL;
-		}	
+
+	// ----------------------------------------------------------
+	public static ArrayList<Bitmap> getImageListFromURL() {
+		return imageListFromURL;
+	}
+
+	public static ArrayList<Bitmap> getLargeImages() {
+		return largeImageList;
+	}
 }
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageListFromUrl.java	(revision 17423)
@@ -2,7 +2,4 @@
 
 public class ImageListFromUrl {
-	public static String[] imageUrls = new String[]
-	{
-		"http://www.csupomona.edu/~lannguyen/image0.png"
-	};
+	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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ImageResizer.java	(revision 17423)
@@ -1,7 +1,13 @@
 package gov.nasa.jpl.issm;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.net.URL;
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.DoubleBuffer;
 
+import android.content.res.AssetManager;
 import android.content.res.Resources;
 import android.graphics.Bitmap;
@@ -10,66 +16,145 @@
 
 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) {
+	private static DoubleBuffer buffer;
 
-        // 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);
+	public static Bitmap decodeSampledBitmapFromURL(URL url, int reqWidth,
+			int 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) {
+		// 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 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);
+			// Calculate inSampleSize
+			options.inSampleSize = 1;
 
-            // 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;
-        }
+			// 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;
+	}
 
-        return inSampleSize;
+	// 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 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;
+		// buffer =
+		// ByteBuffer.allocateDirect(options.outWidth*options.outHeight*4).order(ByteOrder.nativeOrder()).asDoubleBuffer();
+		// Log.i("Buffer size: ", String.valueOf(buffer.capacity()));
+		return BitmapFactory.decodeResource(res, resId, options);
+	}
+
+	public static Bitmap decodeSampledBitmapFromAsset(InputStream is,
+			int reqWidth, int reqHeight) {
+		byte[] byteArr = new byte[0];
+		byte[] buffer = new byte[1024];
+		int len;
+		int count = 0;
+
+		try {
+			while ((len = is.read(buffer)) > -1) {
+				if (len != 0) {
+					if (count + len > byteArr.length) {
+						byte[] newbuf = new byte[(count + len) * 2];
+						System.arraycopy(byteArr, 0, newbuf, 0, count);
+						byteArr = newbuf;
+					}
+
+					System.arraycopy(buffer, 0, byteArr, count, len);
+					count += len;
+				}
+			}
+
+			final BitmapFactory.Options options = new BitmapFactory.Options();
+			options.inJustDecodeBounds = true;
+			BitmapFactory.decodeByteArray(byteArr, 0, count, options);
+
+			options.inSampleSize = calculateInSampleSize(options, reqWidth,
+					reqHeight);
+			options.inPurgeable = true;
+			options.inInputShareable = true;
+			options.inJustDecodeBounds = false;
+			options.inPreferredConfig = Bitmap.Config.ARGB_8888;
+
+			return BitmapFactory.decodeByteArray(byteArr, 0, count, options);
+
+		} catch (Exception e) {
+			e.printStackTrace();
+
+			return null;
+		}
+	}
+
+	// public static Bitmap decodeSampledBitmapFromAsset(InputStream is,
+	// int reqWidth, int reqHeight) {
+	// return BitmapFactory.decodeStream(is);
+	// }
+
+	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;
+		// Log.i("pic width: ", String.valueOf(width));
+		// Log.i("pic height: ", String.valueOf(height));
+		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);
+			// Log.i("width ratio: ", String.valueOf(widthRatio));
+			// Log.i("height ratio: ", String.valueOf(heightRatio));
+
+			// 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;
+			inSampleSize = (int) Math
+					.pow(2, Math.floor(Math.log(inSampleSize)));
+			// Log.i("sample size: ", String.valueOf(inSampleSize));
+		}
+
+		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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/IssmJni.java	(revision 17423)
@@ -1,13 +1,16 @@
 package gov.nasa.jpl.issm;
+
 import java.nio.DoubleBuffer;
 
-class IssmJni
-{
+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");
-    }
+
+	// 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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MenuPage.java	(revision 17423)
@@ -1,117 +1,180 @@
 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.widget.Toast;
 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)
-	{
+public class MenuPage extends BaseActivity {
+	// ISSM issm = new ISSM();
+	// GalleryImage gallery = new GalleryImage();
+	private static String issmFolder;
+
+	// ------------------------------------------------------------------------
+	@Override
+	public void onCreate(Bundle icicle) {
 		super.onCreate(icicle);
-		setContentView(R.layout.menupage);		
+		setContentView(R.layout.menupage);
+		transition();
 		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) 
-			{
+			if (map != null) {
+				issmFolder = map.getString("pathToFile");
+			}
+		}
+
+		// start the core implementation of ISSM
+		// Button start = (Button) findViewById(R.id.play_tab);
+		// 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_tab);
+		// 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.about_tab);
+		// 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.team_tab);
+		// 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.gallery_tab);
+		// galleryImage.setOnClickListener(new View.OnClickListener() {
+		// public void onClick(View v) {
+		// Intent i = new Intent(MenuPage.this, GalleryImage.class);
+		// startActivity(i);
+		// }
+		// });
+
+		Button start = (Button) findViewById(R.id.start);
+		start.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
 				Intent i = new Intent(MenuPage.this, ISSM.class);
 				i.putExtra("pathToFile", issmFolder);
-		        startActivity(i);
+				startActivity(i);
+				finish();
 			}
 		});
-		// 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);
+
+		Button galleryTab = (Button) findViewById(R.id.gallery_tab);
+		galleryTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				Intent i = new Intent(MenuPage.this, GalleryImage.class);
+				startActivity(i);
+				finish();
 			}
 		});
-		// 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);
+		Button videoTab = (Button) findViewById(R.id.video_tab);
+		videoTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			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);
+				finish();
 			}
 		});
-		//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);
+		Button aboutTab = (Button) findViewById(R.id.about_tab);
+		aboutTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			public void onClick(View v) {
+				Intent i = new Intent(MenuPage.this, AboutActivity.class);
+				startActivity(i);
+				finish();
 			}
 		});
-		//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);
+		Button teamTab = (Button) findViewById(R.id.team_tab);
+		teamTab.setOnClickListener(new View.OnClickListener() {
+
+			@Override
+			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);
+				finish();
 			}
 		});
 	}
-//-------------------------------------------------------------------------------------
-	
-	 @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();
-     }
+
+	// -------------------------------------------------------------------------------------
+
+	@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();
+	}
+
+	// ----------------------------------------------------------------------------------------
+	public static String getISSMPath() {
+		return issmFolder;
+	}
 }
-///////////////////////////////////////////////////////////////////////////////////////// 
+// /////////////////////////////////////////////////////////////////////////////////////// 
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLRenderer.java	(revision 17423)
@@ -16,4 +16,5 @@
 
 package gov.nasa.jpl.issm;
+
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
@@ -27,61 +28,67 @@
 import android.opengl.Matrix;
 
-public class MyGLRenderer implements GLSurfaceView.Renderer 
-{
+public class MyGLRenderer implements GLSurfaceView.Renderer {
 	public volatile float mAngle;
-	public volatile float mAngleX; /* NEW STUFF*/
+	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
+
+	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.
+	 * 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.
+	 * 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. */
+	/**
+	 * 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. */
+	/**
+	 * 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;
-    
+
+	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;	
+	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;
@@ -92,48 +99,47 @@
 	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() 
-	{
+
+	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);
-        
+
+	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;
@@ -146,44 +152,91 @@
 		final float lookZ = -5.0f;
 
-		// Set our up vector. This is where our head would be pointing were we holding the camera.
+		// 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.
+		// 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);
+			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);
@@ -194,15 +247,15 @@
 		// Get the compilation status.
 		final int[] compileStatus1 = new int[1];
-		GLES20.glGetShaderiv(vertexShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus1, 0);
+		GLES20.glGetShaderiv(vertexShaderHandle, GLES20.GL_COMPILE_STATUS,
+				compileStatus1, 0);
 
 		// If the compilation failed, delete the shader.
-		if (compileStatus1[0] == 0) 
-		{				
+		if (compileStatus1[0] == 0) {
 			GLES20.glDeleteShader(vertexShaderHandle);
 			vertexShaderHandle = 0;
 		}
-		
-         
-    	int fragmentShaderHandle = GLES20.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
+
+		int fragmentShaderHandle = GLES20
+				.glCreateShader(GLES20.GL_FRAGMENT_SHADER);
 		// Pass in the shader source.
 		GLES20.glShaderSource(fragmentShaderHandle, fragmentShader);
@@ -213,17 +266,16 @@
 		// Get the compilation status.
 		final int[] compileStatus2 = new int[1];
-		GLES20.glGetShaderiv(fragmentShaderHandle, GLES20.GL_COMPILE_STATUS, compileStatus2, 0);
+		GLES20.glGetShaderiv(fragmentShaderHandle, GLES20.GL_COMPILE_STATUS,
+				compileStatus2, 0);
 
 		// If the compilation failed, delete the shader.
-		if (compileStatus2[0] == 0) 
-		{				
+		if (compileStatus2[0] == 0) {
 			GLES20.glDeleteShader(fragmentShaderHandle);
 			fragmentShaderHandle = 0;
 		}
 
-        
-        int mProgram = GLES20.glCreateProgram();
+		int mProgram = GLES20.glCreateProgram();
 		// Bind the vertex shader to the program.
-		GLES20.glAttachShader(mProgram, vertexShaderHandle);			
+		GLES20.glAttachShader(mProgram, vertexShaderHandle);
 
 		// Bind the fragment shader to the program.
@@ -233,5 +285,5 @@
 		GLES20.glBindAttribLocation(mProgram, 0, "a_Position");
 		GLES20.glBindAttribLocation(mProgram, 1, "a_Color");
-		
+
 		// Link the two shaders together into a program.
 		GLES20.glLinkProgram(mProgram);
@@ -242,104 +294,110 @@
 
 		// If the link failed, delete the program.
-		if (linkStatus[0] == 0) 
-		{				
+		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
+
+		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);
-    	}
-    }
+			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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyGLSurfaceView.java	(revision 17423)
@@ -11,12 +11,10 @@
 import android.view.MotionEvent;
 
-
-public class MyGLSurfaceView extends GLSurfaceView 
-{
+public class MyGLSurfaceView extends GLSurfaceView {
 	private MyGLRenderer mRend;
 	private DoubleBuffer db;
 	private int size;
-	double vmax = 0, vmin=0;
-	final int firstVelocity = 9; 
+	double vmax = 0, vmin = 0;
+	final int firstVelocity = 9;
 	ColorMap colorMap;
 	Velocity velocity;
@@ -24,103 +22,117 @@
 	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();
+
+	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;
+			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];
-		}
-				
+			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");
+			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();
@@ -130,8 +142,11 @@
 			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");
+			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();
@@ -141,89 +156,87 @@
 			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*/
+
+		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;
-					}
+		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;
+			} 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;
@@ -231,6 +244,6 @@
 		return true;
 	}
-	
-	private float spacing(MotionEvent event) /* NEW STUFF*/
+
+	private float spacing(MotionEvent event) /* NEW STUFF */
 	{
 		float x = event.getX(0) - event.getX(1);
@@ -238,10 +251,8 @@
 		return FloatMath.sqrt(x * x + y * y);
 	}
-	
-	public void resetZoom()
-	{
+
+	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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/MyWebViewClient.java	(revision 17423)
@@ -1,16 +1,22 @@
 package gov.nasa.jpl.issm;
 
+import android.view.View;
 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;
-    
-    }
+	public boolean shouldOverrideUrlLoading(WebView view, String url) {
+
+		// This is my web site, so do not override; let my WebView load the page
+		return false;
+
+	}
+
+	public void onPageStarted(WebView view, String url) {
+		// TODO Auto-generated method stub
+
+	}
 
 }
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SliderMenu.java	(revision 17423)
@@ -9,5 +9,5 @@
 import android.widget.SeekBar.OnSeekBarChangeListener;
 
-public class SliderMenu extends RelativeLayout{
+public class SliderMenu extends RelativeLayout {
 
 	private SeekBar frictionBar;
@@ -19,80 +19,93 @@
 	final int MINIMUM = 90;
 	View view;
+
 	public SliderMenu(Context context) {
 		super(context);
-		LayoutInflater mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
-		if( mInflater != null)
-		{
+		LayoutInflater mInflater = (LayoutInflater) context
+				.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+		if (mInflater != null) {
 			view = mInflater.inflate(R.layout.settingsmenu, this, true);
 		}
 		initialize();
 	}
-	public void 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();
+		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 + "%");
-                }
+	private void setListenner() {
+		frictionBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
+			public void onProgressChanged(SeekBar seekBar, int progress,
+					boolean fromUser) {
 
-	            @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 + "%");
-                }
+				friction = progress + OFFSET;
+				fric.setText("Friction: " + friction + "%");
+			}
 
-	            @Override
-	            public void onStartTrackingTouch(SeekBar seekBar) {}
-	
-	            @Override
-	            public void onStopTrackingTouch(SeekBar seekBar) {}
-        });
+			@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;}
+
+	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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/SwapViews.java	(revision 17423)
@@ -12,66 +12,57 @@
 	ImageView infoImage;
 	TextView text;
-	
+
 	public SwapViews(boolean isFirstView, ImageView image, TextView text) {
-	 mIsFirstView = isFirstView;
-	 containTextView = true;
-	 this.mainImage = image;
-	 this.text = 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;
+		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);
-	 }
-   }
+		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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/TeamActivity.java	(revision 17423)
@@ -1,31 +1,169 @@
 package gov.nasa.jpl.issm;
 
-import android.app.Activity;
+import android.app.ProgressDialog;
+import android.content.Context;
+import android.content.Intent;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
 //import android.net.Uri;
 import android.os.Bundle;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
 import android.webkit.WebView;
+import android.widget.Button;
 import gov.nasa.jpl.issm.MyWebViewClient;
 
-public class TeamActivity extends Activity {
+public class TeamActivity extends BaseActivity {
 
 	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);
-	   }
 
+	/** Called when the activity is first created. */
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		setContentView(R.layout.teampage);
+		transition();
+		final ProgressDialog loading = new ProgressDialog(this);
+		loading.setMessage("Loading page...");
+		loading.setCancelable(false);
+		final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
+		if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
+				|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
+			loading.show();
+		}
+		// else if (conMgr.getNetworkInfo(0).getState() ==
+		// NetworkInfo.State.DISCONNECTED
+		// || conMgr.getNetworkInfo(1).getState() ==
+		// NetworkInfo.State.DISCONNECTED) {
+		// }
+
+		// Go back to the main menu
+		Button homeTab = (Button) findViewById(R.id.play_tab);
+		homeTab.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(TeamActivity.this, MenuPage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// navigate to youtube video
+		Button video = (Button) findViewById(R.id.video_tab);
+		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(TeamActivity.this, VideoActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// pop up a text box that contains information about ISSM
+		final Button intro = (Button) findViewById(R.id.about_tab);
+		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(TeamActivity.this, AboutActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// Show Team Website
+		// Button visitus = (Button) findViewById(R.id.team_tab);
+		// 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(TeamActivity.this, TeamActivity.class);
+		// startActivity(i);
+		// }
+		// });
+		// start gallery image
+		Button galleryImage = (Button) findViewById(R.id.gallery_tab);
+		galleryImage.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(TeamActivity.this, GalleryImage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+		// webView = (WebView) findViewById(R.id.teampage);
+		myWebView = (WebView) findViewById(R.id.teampage);
+		myWebView.setWebViewClient(new MyWebViewClient() {
+			@Override
+			public boolean shouldOverrideUrlLoading(WebView view, String url) {
+
+				Log.i("srcUrl: ", SrcPath);
+				Log.i("newUrl: ", url);
+				if (conMgr.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
+						|| conMgr.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
+					loading.show();
+				}
+				return false;
+			}
+
+			@Override
+			public void onPageFinished(WebView view, String url) {
+				// hide loading
+				loading.dismiss();
+			}
+		});
+		myWebView.getSettings().setJavaScriptEnabled(true);
+		myWebView.loadUrl(SrcPath);
+	}
+
+	// -------------------------------------------------------------------------------------
+
+	@Override
+	public void onBackPressed() {
+		if (myWebView.canGoBack()) {
+			myWebView.goBack();
+		} else {
+			Intent i = new Intent(TeamActivity.this, MenuPage.class);
+			startActivity(i);
+			finish();
+		}
+	}
+
+	@Override
+	public boolean onCreateOptionsMenu(Menu menu) {
+		getMenuInflater().inflate(R.menu.team_menu, menu);
+		return true;
+	}
+
+	@Override
+	public boolean onOptionsItemSelected(MenuItem item) {
+		switch (item.getItemId()) {
+		case R.id.refresh:
+			myWebView.loadUrl(myWebView.getOriginalUrl());
+			break;
+		default:
+			break;
+		}
+
+		return true;
+	}
 }
-
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VerticalSeekBar.java	(revision 17423)
@@ -9,51 +9,52 @@
 public class VerticalSeekBar extends SeekBar {
 
-    public VerticalSeekBar(Context context) {
-        super(context);
-    }
+	public VerticalSeekBar(Context context) {
+		super(context);
+	}
 
-    public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
-        super(context, attrs, defStyle);
-    }
+	public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
+		super(context, attrs, defStyle);
+	}
 
-    public VerticalSeekBar(Context context, AttributeSet attrs) {
-        super(context, attrs);
-    }
+	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);
-    }
+	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());
-    }
+	@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);
-    }
+	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;
+	@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;
-    }
+		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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/VideoActivity.java	(revision 17423)
@@ -1,25 +1,151 @@
 package gov.nasa.jpl.issm;
 
+import com.google.android.youtube.player.YouTubeBaseActivity;
+import com.google.android.youtube.player.YouTubeInitializationResult;
+import com.google.android.youtube.player.YouTubePlayer;
+import com.google.android.youtube.player.YouTubePlayer.Provider;
+import com.google.android.youtube.player.YouTubePlayerView;
+
+import android.app.ActionBar;
 import android.app.Activity;
+import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.View;
+import android.webkit.WebView;
+import android.widget.Button;
 import android.widget.MediaController;
+import android.widget.TextView;
+import android.widget.TextView.OnEditorActionListener;
+import android.widget.Toast;
 import android.widget.VideoView;
 
-public class VideoActivity extends Activity {
+public class VideoActivity extends YouTubeBaseActivity implements
+		YouTubePlayer.OnInitializedListener {
+	// String SrcPath =
+	// "rtsp://v2.cache1.c.youtube.com/CjYLENy73wIaLQkXH3-3kcYu1RMYDSANFEIJbXYtZ29vZ2xlSARSBXdhdGNoYI-SyfPGoqqyUQw=/0/0/0/video.3gp";
+	static private final String DEV_KEY = "AIzaSyBl8llEnYKwVp_myQGPNKtZYtHxvUUkqrc";
+	static private final String VIDEO = "GuScXQznl9E";
+	private YouTubePlayerView ytView;
+	private YouTubePlayer ytPlayer;
 
-	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();
-	   }
+	//
+	// /** 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();
+	// }
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		getActionBar().setCustomView(R.layout.actionbar_top);
+		getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
+		overridePendingTransition(R.anim.right_in, R.anim.left_out);
+		setContentView(R.layout.videopage);
+		ytView = (YouTubePlayerView) findViewById(R.id.youtubeplayer);
+		ytView.initialize(DEV_KEY, this);
+
+		// Go back to the main menu
+		Button start = (Button) findViewById(R.id.play_tab);
+		start.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(VideoActivity.this, MenuPage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// navigate to youtube video
+		// Button video = (Button) findViewById(R.id.video_tab);
+		// 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(VideoActivity.this, VideoActivity.class);
+		// startActivity(i);
+		// finish();
+		// }
+		// });
+		// pop up a text box that contains information about ISSM
+		final Button intro = (Button) findViewById(R.id.about_tab);
+		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(VideoActivity.this, AboutActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// Show Team Website
+		Button visitus = (Button) findViewById(R.id.team_tab);
+		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(VideoActivity.this, TeamActivity.class);
+				startActivity(i);
+				finish();
+			}
+		});
+		// start gallery image
+		Button galleryImage = (Button) findViewById(R.id.gallery_tab);
+		galleryImage.setOnClickListener(new View.OnClickListener() {
+			public void onClick(View v) {
+				Intent i = new Intent(VideoActivity.this, GalleryImage.class);
+				startActivity(i);
+				finish();
+			}
+		});
+
+	}
+
+	@Override
+	public void onInitializationFailure(Provider provider,
+			YouTubeInitializationResult error) {
+		Toast.makeText(this, "Initialization Fail! " + error.toString(),
+				Toast.LENGTH_LONG).show();
+	}
+
+	@Override
+	public void onInitializationSuccess(Provider provider,
+			YouTubePlayer player, boolean bool) {
+		ytPlayer = player;
+		Toast.makeText(this, "Initialization  Success.", Toast.LENGTH_LONG)
+				.show();
+		ytPlayer.loadVideo(VIDEO);
+
+	}
+
+	@Override
+	public void onBackPressed() {
+		Intent i = new Intent(VideoActivity.this, MenuPage.class);
+		startActivity(i);
+		finish();
+	}
 
 }
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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageView.java	(revision 17423)
@@ -16,5 +16,10 @@
 package gov.nasa.jpl.issm;
 
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
 import android.content.Context;
+import android.content.Intent;
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
@@ -26,135 +31,149 @@
 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;
 
-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());
-    }
+	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 resId = getResources().getIdentifier("image" + i, "drawable",
+				context.getPackageName());
+		// mIcon = getResources().getDrawable(resID);
+		int width = context.getResources().getDisplayMetrics().widthPixels;
+		int height = context.getResources().getDisplayMetrics().heightPixels;
+
+		// replace with i to represent the image#.png in assets
+		InputStream is = null;
+		try {
+			is = new BufferedInputStream(context.getAssets().open(
+					"image" + i + ".png"));
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		// pre-load
+		b = ImageList.getLargeImages().get(i);
+		// asset
+		// b = ImageResizer.decodeSampledBitmapFromAsset(is, width, height);
+		// resource
+		// b =
+		// ImageResizer.decodeSampledBitmapFromResource(context.getResources(),
+		// resId, 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);
+	public boolean onTouchEvent(MotionEvent ev) {
+		// Let the ScaleGestureDetector inspect all events.
+		mScaleDetector.onTouchEvent(ev);
 
-            // Only move if the ScaleGestureDetector isn't processing a gesture.
-            if (!mScaleDetector.isInProgress()) {
-                final float dx = x - mLastTouchX;
-                final float dy = y - mLastTouchY;
+		final int action = ev.getAction();
+		switch (action & MotionEvent.ACTION_MASK) {
+		case MotionEvent.ACTION_DOWN: {
+			final float x = ev.getX();
+			final float y = ev.getY();
 
-                mPosX += dx;
-                mPosY += dy;
+			mLastTouchX = x;
+			mLastTouchY = y;
+			mActivePointerId = ev.getPointerId(0);
+			break;
+		}
 
-                invalidate();
-            }
+		case MotionEvent.ACTION_MOVE: {
+			final int pointerIndex = ev.findPointerIndex(mActivePointerId);
 
-            mLastTouchX = x;
-            mLastTouchY = y;
+			final float x = ev.getX(pointerIndex);
+			final float y = ev.getY(pointerIndex);
 
-            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;
-    }
+			// Only move if the ScaleGestureDetector isn't processing a gesture.
+			if (!mScaleDetector.isInProgress()) {
+				final float dx = x - mLastTouchX;
+				final float dy = y - mLastTouchY;
 
-    @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();
-    }
+				mPosX += dx;
+				mPosY += dy;
 
-    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();
+			}
 
-            invalidate();
-            return true;
-        }
-    }
+			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 17422)
+++ /issm/mobile/android/ISSM_APP/src/gov/nasa/jpl/issm/ZoomImageViewActivity.java	(revision 17423)
@@ -17,34 +17,44 @@
 
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
 import android.view.KeyEvent;
 import android.view.ViewGroup;
+import android.view.Window;
 
 public class ZoomImageViewActivity extends Activity {
-    /** Called when the activity is first created. */
-	
+	/** 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;
-    }
+
+	@Override
+	public void onCreate(Bundle savedInstanceState) {
+		super.onCreate(savedInstanceState);
+		super.requestWindowFeature(Window.FEATURE_NO_TITLE);
+		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;
+	}
+
+	@Override
+	public void onBackPressed() {
+		Intent i = new Intent(ZoomImageViewActivity.this, GalleryImage.class);
+		startActivity(i);
+		finish();
+	}
 }
