Index: /issm/branches/trunk-jpl-ad2/src/m/plot/plot_gl.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/plot_gl.m	(revision 18355)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/plot_gl.m	(revision 18356)
@@ -49,9 +49,11 @@
 %intial view angle: 
 replacestringinfile('./generic/editables.js','var view_number_default = 3;',['var view_number_default = ' num2str(getfieldvalue(options,'view_number_default',3)) ';']);
+	
+%zoom
+replacestringinfile('./generic/editables.js','initialZoomFactor = -.20;',['initialZoomFactor = ' num2str(getfieldvalue(options,'zoom',-.25)) ';']);
 
 %Deal with mesh and results {{{
 	
-	fid=fopen([database 'model_coords.js'],'w');
-
+	
 	lat=md.mesh.lat;
 	long=md.mesh.long;
@@ -65,41 +67,37 @@
 	y = R .* cosd(lat) .* sind(long);
 	z = R .* sind(lat);
+
+	%initialize model: 
+	model.title='Brunt Ice Shelf';
+
+	%Deal with triangulation: 
+	model.index=md.mesh.elements;
+	model.x=x;
+	model.y=y;
+	model.z=z;
+	model.surface=surface;
 	
-
-	%write index:
-	fprintf(fid,'<!-- index{{{-->\n');
-	fprintf(fid,'var index=[');
-	for i=1:md.mesh.numberofelements-1,
-		fprintf(fid,'[%i, %i, %i],',md.mesh.elements(i,1),md.mesh.elements(i,2),md.mesh.elements(i,3));
-	end
-	fprintf(fid,'[%i, %i, %i]];\n',md.mesh.elements(end,1),md.mesh.elements(end,2),md.mesh.elements(end,3));
-	fprintf(fid,'<!--}}}-->\n');
-	writejsfield(fid,'x',x,numberofvertices);
-	writejsfield(fid,'y',y,numberofvertices);
-	writejsfield(fid,'z',z,numberofvertices);
-	writejsfield(fid,'surface',surface,numberofvertices);
-
 	%Deal with data: 
-	datastring='';
-	caxis1string='';
-	caxis2string='';
-	labelstring='';
-	shortlabelstring='';
-	unitstring='';
-	zoom=getfieldvalue(options,'zoom',-.25);
+	results=struct([]);
 	for i=1:length(optionslist),
 		options=optionslist{i}; options=checkplotoptions(md,options);
 		data=getfieldvalue(options,'data');
-		caxis=getfieldvalue(options,'caxis',[min(data(:)) max(data(:))]);
+		results(i).data=data;
+		results(i).caxis=getfieldvalue(options,'caxis',[min(data(:)) max(data(:))]);
+
 		label=getfieldvalue(options,'label','');
-		shortlabel=getfieldvalue(options,'shortlabel','');
 		if strcmpi(label,''),
 			%create generic label: 
 			label=['data' num2str(i)];
 		end
+		results(i).label=label;
+
+		shortlabel=getfieldvalue(options,'shortlabel','');
 		if strcmpi(shortlabel,''),
 			%create generic short label: 
 			shortlabel=['data' num2str(i)];
 		end
+		results(i).shortlabel=shortlabel;
+
 		unit=getfieldvalue(options,'unit','');
 		if strcmpi(unit,''),
@@ -107,33 +105,11 @@
 			unit='SI';
 		end
-
-		if i<length(optionslist),
-			datastring=[datastring '"data' num2str(i) '",'];
-			caxis1string=[caxis1string num2str(caxis(1)) ','];
-			caxis2string=[caxis2string num2str(caxis(2)) ','];
-			labelstring=[labelstring '"' label '"' ','];
-			shortlabelstring=[shortlabelstring '"' shortlabel '"' ','];
-			unitstring=[unitstring '"' unit '"' ','];
-		else
-			datastring=[datastring '"data' num2str(i) '"' ];
-			caxis1string=[caxis1string num2str(caxis(1))];
-			caxis2string=[caxis2string num2str(caxis(2))];
-			labelstring=[labelstring '"' label '"'];
-			shortlabelstring=[shortlabelstring '"' shortlabel '"'];
-			unitstring=[unitstring '"' unit '"'];
-		end
-		writejsfield(fid,['data' num2str(i)],data,md.mesh.numberofvertices);
+		results(i).unit=unit;
 	end
-	fclose(fid);
+	model.results=results;
 	
-	replacestringinfile('./generic/editables.js','"Velocity"',labelstring);
-	replacestringinfile('./generic/editables.js','"V"',shortlabelstring);
-	replacestringinfile('./generic/editables.js','"velocity"',datastring);
-	replacestringinfile('./generic/editables.js','var data_min_array = [0',['var data_min_array = [' caxis1string]);
-	replacestringinfile('./generic/editables.js','var data_max_array = [3500',['var data_max_array = [' caxis2string]);
-	replacestringinfile('./generic/editables.js','"m/yr"',unitstring);
-
-	replacestringinfile('./generic/editables.js','initialZoomFactor = -.20;',['initialZoomFactor = ' num2str(zoom) ';']);
-% }}}
+	%Write model to javascript database file: 
+	writejsfile([database 'brunt.js'],model,'brunt')
+%}}}
 
 %Open browser with results: 
@@ -142,2 +118,4 @@
 %Come back to present directory: 
 cd(presentdir);
+
+
Index: /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfield.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfield.m	(revision 18355)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfield.m	(revision 18356)
@@ -9,5 +9,5 @@
 	if size(variable,2)==1,
 		fprintf(fid,'<!-- %s{{{-->\n',name);
-		fprintf(fid,'var %s=[',name);
+		fprintf(fid,'%s=[',name);
 		for i=1:nods-1,
 			fprintf(fid,'%g,',variable(i));
@@ -18,5 +18,5 @@
 		%multi-sized array: 
 		fprintf(fid,'<!-- %s{{{-->\n',name);
-		fprintf(fid,'var %s={}\n',name);
+		fprintf(fid,'%s=[]\n',name);
 		for i=1:size(variable,2),
 			fprintf(fid,'%s["%i"]=[',name,i);
Index: /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m
===================================================================
--- /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m	(revision 18356)
+++ /issm/branches/trunk-jpl-ad2/src/m/plot/writejsfile.m	(revision 18356)
@@ -0,0 +1,46 @@
+function writejsfile(filename,model,keyname)
+%WRITEJSFILE - write model file to javascript database
+%
+%   Usage:
+%      writejsfile(filename,model,keyname)
+%
+
+	nods=length(model.x);
+	nel=size(model.index,1);
+	
+	fid=fopen(filename,'w');
+
+	fprintf(fid,'model = []\n');
+
+	%write index:
+	fprintf(fid,'<!-- model["index"]{{{-->\n');
+	fprintf(fid,'model["index"]=[');
+	for i=1:nel-1,
+		fprintf(fid,'[%i, %i, %i],',model.index(i,1),model.index(i,2),model.index(i,3));
+	end
+	fprintf(fid,'[%i, %i, %i]];\n',model.index(end,1),model.index(end,2),model.index(end,3));
+	fprintf(fid,'<!--}}}-->\n');
+	
+	writejsfield(fid,'model["x"]',model.x,nods);
+	writejsfield(fid,'model["y"]',model.y,nods);
+	writejsfield(fid,'model["z"]',model.z,nods);
+	writejsfield(fid,'model["surface"]',model.surface,nods);
+
+	results=model.results;
+	fprintf(fid,'results=[]\n');
+	fprintf(fid,'result=[]\n');
+
+	for i=1:length(results),
+		writejsfield(fid,'result["data"]',results(i).data,nods);
+		fprintf(fid,'<!--{{{-->\n');
+		fprintf(fid,'result["caxis"]=[%g,%g];\n',results(i).caxis(1),results(i).caxis(2));
+		fprintf(fid,'result["label"]="%s"\n',results(i).label);
+		fprintf(fid,'result["shortlabel"]="%s"\n',results(i).shortlabel);
+		fprintf(fid,'result["unit"]="%s"\n',results(i).unit);
+		fprintf(fid,'results["%i"]=result;\n',i);
+		fprintf(fid,'<!--}}}-->\n');
+	end
+	fprintf(fid,'model.results=results;\n');
+	fprintf(fid,'models["%s"]=model;\n',keyname);
+
+	fclose(fid);
