diff --git a/theme/list_lib.js b/theme/list_lib.js
index bf5ad014a..20dc5a79e 100644
--- a/theme/list_lib.js
+++ b/theme/list_lib.js
@@ -1,9 +1,9 @@
-var itemsToShow = new Array(); //list of indexes to all dives to view
+var itemsToShow = new Array(); //list of indexes to all dives to view
var items = new Array();
-var start; //index of first element viewed in itemsToShow
-var sizeofpage; //size of viewed page
-var numberofwords=0; //just for stats
-var olditemstoshow; //to reference the indexes to all dives if changed
+var start; //index of first element viewed in itemsToShow
+var sizeofpage; //size of viewed page
+var numberofwords = 0; //just for stats
+var olditemstoshow; //to reference the indexes to all dives if changed
//////////////////////////////////
// //
// View Model //
@@ -15,12 +15,13 @@ var olditemstoshow; //to reference the indexes to all dives if changed
*View N pages each of sizeofpage size items.
*starting from zero
*/
-function showAllDives(){
- for(var i=0 ; i < items.length ; i++){
+function showAllDives()
+{
+ for (var i = 0; i < items.length; i++) {
itemsToShow.push(i);
}
olditemstoshow = itemsToShow;
- start=0;
+ start = 0;
viewInPage();
}
@@ -29,36 +30,40 @@ function showAllDives(){
*It start from 'start' variable.
*It showes N pages each of sizeofpage size.
*/
-function viewInPage(){
- var end = start + sizeofpage -1;
- if(end >= itemsToShow.length ) end = itemsToShow.length-1;
- updateView(start,end);
+function viewInPage()
+{
+ var end = start + sizeofpage - 1;
+ if (end >= itemsToShow.length)
+ end = itemsToShow.length - 1;
+ updateView(start, end);
}
/**
*addHTML this Method puts the HTML of items of given indexes
*@param {array} indexes array of indexes to put in HTML
*/
-function updateView(start,end){
+function updateView(start, end)
+{
var divelist = document.getElementById('diveslist');
- divelist.innerHTML="";
- for(var i=start;i<=end;i++){
- divelist.innerHTML+='
';
+ divelist.innerHTML = "";
+ for (var i = start; i <= end; i++) {
+ divelist.innerHTML += '';
expand(document.getElementById(itemsToShow[i]));
items[itemsToShow[i]].expanded = true;
};
- view_pagging(start,end);
+ view_pagging(start, end);
}
/**
*addHTML this Method puts the HTML of items of given indexes
*@param {array} indexes array of indexes to put in HTML
*/
-function addHTML(indexes){
+function addHTML(indexes)
+{
var divelist = document.getElementById('diveslist');
- divelist.innerHTML="";
- for(var i=0;i';
+ divelist.innerHTML = "";
+ for (var i = 0; i < indexes.length; i++) {
+ divelist.innerHTML += '';
expand(document.getElementById(indexes[i]));
itemsToShow[indexes[i]].expanded = true;
};
@@ -69,98 +74,107 @@ function addHTML(indexes){
*@param {integer} start start from this index
*@param {integer} finish at this index.
*/
-function view_in_range(start,end){
+function view_in_range(start, end)
+{
var ind = new Array();
- if(end>=itemsToShow.length)end=itemsToShow.length-1;
- for(var i=start ; i <= end ; i++){
+ if (end >= itemsToShow.length)
+ end = itemsToShow.length - 1;
+ for (var i = start; i <= end; i++) {
ind.push(i);
}
addHTML(ind);
- view_pagging(start,end);
+ view_pagging(start, end);
}
-function prev_page(){
- var end = start+sizeofpage-1;
- if(start-sizeofpage>0){
- start-=sizeofpage;
+function prev_page()
+{
+ var end = start + sizeofpage - 1;
+ if (start - sizeofpage > 0) {
+ start -= sizeofpage;
+ } else {
+ start = 0;
}
- else{
- start=0;
+ if (end - sizeofpage > 0) {
+ end -= sizeofpage;
}
- if(end-sizeofpage>0){
- end-=sizeofpage;
+ if (end >= itemsToShow.length) {
+ end = itemsToShow.length - 1;
}
- if(end>=itemsToShow.length){
- end = itemsToShow.length-1;
- }
- updateView(start,end)
+ updateView(start, end)
}
-function next_page(){
- var end = start+sizeofpage-1;
- if(end+sizeofpage=itemsToShow.length) break;
+function expandAll()
+{
+ for (var i = start; i < start + sizeofpage; i++) {
+ if (i >= itemsToShow.length)
+ break;
unexpand(document.getElementById(itemsToShow[i]));
items[itemsToShow[i]].expanded = false;
}
}
-function collapseAll(){
- for(var i=start;i=itemsToShow.length) break;
+function collapseAll()
+{
+ for (var i = start; i < start + sizeofpage; i++) {
+ if (i >= itemsToShow.length)
+ break;
expand(document.getElementById(itemsToShow[i]));
items[itemsToShow[i]].expanded = true;
}
}
-function setNumberOfDives(e){
+function setNumberOfDives(e)
+{
var value = e.options[e.selectedIndex].value;
- sizeofpage=parseInt(value,10);
- var end = start + sizeofpage -1;
- view_in_range(start,end);
+ sizeofpage = parseInt(value, 10);
+ var end = start + sizeofpage - 1;
+ view_in_range(start, end);
}
-function toggleExpantion(ul){
- if(!items[ul.id].expanded)
- {
+function toggleExpantion(ul)
+{
+ if (!items[ul.id].expanded) {
expand(ul);
items[ul.id].expanded = true;
- }
- else
- {
+ } else {
unexpand(ul);
items[ul.id].expanded = false;
}
}
-function expand(ul){
+function expand(ul)
+{
ul.innerHTML = getlimited(items[ul.id]);
- ul.style.padding='2px 10px 2px 10px';
+ ul.style.padding = '2px 10px 2px 10px';
}
-function unexpand(ul){
+
+function unexpand(ul)
+{
ul.innerHTML = getExpanded(items[ul.id]);
- ul.style.padding='3px 10px 3px 10px';
+ ul.style.padding = '3px 10px 3px 10px';
}
///////////////////////////////////////
@@ -169,54 +183,58 @@ function unexpand(ul){
//
//////////////////////////////////////
-function getlimited (dive) {
- return ''+(settings.subsurfaceNumbers==='0'?dive.number:dive.subsurface_number)+'
'+
- '
'+dive.date+'
'+
- '
'+dive.time+'
'+
- '
'+dive.location+'
'+
- '
'+dive.temperature.air+'
'+
- '
'+dive.temperature.water+'
';
+function getlimited(dive)
+{
+ return '' + (settings.subsurfaceNumbers === '0' ? dive.number : dive.subsurface_number) + '
' +
+ '
' + dive.date + '
' +
+ '
' + dive.time + '
' +
+ '
' + dive.location + '
' +
+ '
' + dive.temperature.air + '
' +
+ '
' + dive.temperature.water + '
';
};
-function getExpanded (dive) {
- var res = 'Date: | '+dive.date+
- ' |      Time: | '+dive.time +
- ' |      Location: | '+''+
- dive.location +''+
- ' |
Rating: | '+putRating(dive.rating)+
- ' |    Visibilty: | '+putRating(dive.visibility)+
- ' |
'+
- 'Air temp: | '+dive.temperature.air+
- ' |     Water temp: | '+dive.temperature.water +
- ' |
DiveMaster: | '+dive.divemaster +
- ' |
Buddy: | '+dive.buddy +
- ' |
Suit: | '+dive.suit +
- ' |
Tags: | '+putTags(dive.tags)+
- ' |
';
- if(settings.listOnly==='0'){
- res += 'show more details';
+function getExpanded(dive)
+{
+ var res = 'Date: | ' + dive.date +
+ ' |      Time: | ' + dive.time +
+ ' |      Location: | ' + '' +
+ dive.location + '' +
+ ' |
Rating: | ' + putRating(dive.rating) +
+ ' |    Visibilty: | ' + putRating(dive.visibility) +
+ ' |
' +
+ 'Air temp: | ' + dive.temperature.air +
+ ' |     Water temp: | ' + dive.temperature.water +
+ ' |
DiveMaster: | ' + dive.divemaster +
+ ' |
Buddy: | ' + dive.buddy +
+ ' |
Suit: | ' + dive.suit +
+ ' |
Tags: | ' + putTags(dive.tags) +
+ ' |
Notes:
' + dive.notes + '
';
+ if (settings.listOnly === '0') {
+ res += 'show more details';
}
return res;
};
-function putTags(tags){
- var result="";
- for(var i in tags){
- result+=''+tags[i]+'';
- if(i' + tags[i] + '';
+ if (i < tags.length - 1)
+ result += ', ';
}
return result;
}
-function putRating(rating){
+function putRating(rating)
+{
var result;
- result='';
- for(var i=0;i
';
+ result = '';
+ for (var i = 0; i < rating; i++)
+ result += ' ★ ';
+ for (var i = rating; i < 5; i++)
+ result += ' ☆ ';
+ result += '
';
return result;
}
@@ -237,123 +255,140 @@ var air = true;
var water = true;
var locat = true;
-function list_sort(sortOn){
- switch(sortOn){
- case '1' ://number
- if(number){
- sort_it(sortOn,cmpNumAsc);
+function list_sort(sortOn)
+{
+ switch (sortOn) {
+ case '1': //number
+ if (number) {
+ sort_it(sortOn, cmpNumAsc);
number = 1 - number;
- }
- else{
- sort_it(sortOn,cmpNumDes);
+ } else {
+ sort_it(sortOn, cmpNumDes);
number = 1 - number;
- }
+ }
break;
- case '2' ://date
- if(date){
- sort_it(sortOn,cmpDateAsc);
+ case '2': //date
+ if (date) {
+ sort_it(sortOn, cmpDateAsc);
date = 1 - date;
- }
- else{
- sort_it(sortOn,cmpDateDes);
+ } else {
+ sort_it(sortOn, cmpDateDes);
date = 1 - date;
- }
+ }
break;
- case '3'://time
- if(time){
- sort_it(sortOn,cmpTimeDes);
+ case '3': //time
+ if (time) {
+ sort_it(sortOn, cmpTimeDes);
time = 1 - time;
- }
- else{
- sort_it(sortOn,cmpTimeAsc);
+ } else {
+ sort_it(sortOn, cmpTimeAsc);
time = 1 - time;
- }
+ }
break;
- case '4'://Air temp
- if(air){
- sort_it(sortOn,cmpAtempDes);
+ case '4': //Air temp
+ if (air) {
+ sort_it(sortOn, cmpAtempDes);
air = 1 - air;
- }
- else{
- sort_it(sortOn,cmpAtempAsc);
+ } else {
+ sort_it(sortOn, cmpAtempAsc);
air = 1 - air;
- }
+ }
break;
- case '5'://Water temp
- if(water){
- sort_it(sortOn,cmpWtempDes);
+ case '5': //Water temp
+ if (water) {
+ sort_it(sortOn, cmpWtempDes);
water = 1 - water;
- }
- else{
- sort_it(sortOn,cmpWtempAsc);
+ } else {
+ sort_it(sortOn, cmpWtempAsc);
water = 1 - water;
- }
+ }
break;
- case '6'://Water temp
- if(locat){
- sort_it(sortOn,cmpLocationDes);
+ case '6': //Water temp
+ if (locat) {
+ sort_it(sortOn, cmpLocationDes);
locat = 1 - locat;
- }
- else{
- sort_it(sortOn,cmpLocationAsc);
+ } else {
+ sort_it(sortOn, cmpLocationAsc);
locat = 1 - locat;
- }
+ }
break;
}
}
-function cmpLocationAsc(j,iSmaller){
- return items[j].location < items[iSmaller].location ;
+function cmpLocationAsc(j, iSmaller)
+{
+ return items[j].location < items[iSmaller].location;
}
-function cmpLocationDes(j,iSmaller){
- return items[j].location > items[iSmaller].location ;
+function cmpLocationDes(j, iSmaller)
+{
+ return items[j].location > items[iSmaller].location;
}
-function cmpNumAsc(j,iSmaller){
- return items[j].subsurface_number < items[iSmaller].subsurface_number ;
-}
-function cmpNumDes(j,iSmaller){
- return items[j].subsurface_number > items[iSmaller].subsurface_number ;
-}
-function cmpTimeAsc(j,iSmaller){
- return items[j].time < items[iSmaller].time ;
-}
-function cmpTimeDes(j,iSmaller){
- return items[j].time > items[iSmaller].time ;
-}
-function cmpDateAsc(j,iSmaller){
- return items[j].date < items[iSmaller].date ;
-}
-function cmpDateDes(j,iSmaller){
- return items[j].date > items[iSmaller].date ;
-}
-function cmpAtempAsc(j,iSmaller){
- return parseInt(items[j].temperature.air,10) < parseInt(items[iSmaller].temperature.air,10) ;
-}
-function cmpAtempDes(j,iSmaller){
- return parseInt(items[j].temperature.air,10) > parseInt(items[iSmaller].temperature.air,10) ;
-}
-function cmpWtempAsc(j,iSmaller){
- return parseInt(items[j].temperature.water,10) < parseInt(items[iSmaller].temperature.water,10) ;
-}
-function cmpWtempDes(j,iSmaller){
- return parseInt(items[j].temperature.water,10) > parseInt(items[iSmaller].temperature.water,10) ;
+function cmpNumAsc(j, iSmaller)
+{
+ return items[j].subsurface_number < items[iSmaller].subsurface_number;
}
-function sort_it(sortOn,function_){
+function cmpNumDes(j, iSmaller)
+{
+ return items[j].subsurface_number > items[iSmaller].subsurface_number;
+}
+
+function cmpTimeAsc(j, iSmaller)
+{
+ return items[j].time < items[iSmaller].time;
+}
+
+function cmpTimeDes(j, iSmaller)
+{
+ return items[j].time > items[iSmaller].time;
+}
+
+function cmpDateAsc(j, iSmaller)
+{
+ return items[j].date < items[iSmaller].date;
+}
+
+function cmpDateDes(j, iSmaller)
+{
+ return items[j].date > items[iSmaller].date;
+}
+
+function cmpAtempAsc(j, iSmaller)
+{
+ return parseInt(items[j].temperature.air, 10) < parseInt(items[iSmaller].temperature.air, 10);
+}
+
+function cmpAtempDes(j, iSmaller)
+{
+ return parseInt(items[j].temperature.air, 10) > parseInt(items[iSmaller].temperature.air, 10);
+}
+
+function cmpWtempAsc(j, iSmaller)
+{
+ return parseInt(items[j].temperature.water, 10) < parseInt(items[iSmaller].temperature.water, 10);
+}
+
+function cmpWtempDes(j, iSmaller)
+{
+ return parseInt(items[j].temperature.water, 10) > parseInt(items[iSmaller].temperature.water, 10);
+}
+
+function sort_it(sortOn, function_)
+{
var res = new Array();
var visited = new Array(itemsToShow.length);
- for(var j=0;j= 0) ? true : false;
}
-Set.prototype.push = function(key) {
- if(!this.contains(key)){
+Set.prototype.push = function(key)
+{
+ if (!this.contains(key)) {
this.keys.push(key);
}
};
-Set.prototype.isEmpty = function() {
- return this.keys.length<=0? true:false;
+Set.prototype.isEmpty = function()
+{
+ return this.keys.length <= 0 ? true : false;
};
-Set.prototype.forEach = function(do_){
- this.keys.forEach(do_);
+Set.prototype.forEach = function(do_) {
+ this.keys.forEach (do_);
};
-Set.prototype.Union = function(another_set){
+Set.prototype.Union = function(another_set)
+{
if (another_set === null) {
return;
}
- for(var i=0; i'+
- trips[i].name+' ( '+trips[i].dives.length+' dives)'+''+'';
+ divelist.innerHTML = "";
+ for (var i = 0; i < trips.length; i++) {
+ divelist.innerHTML += '' +
+ trips[i].name + ' ( ' + trips[i].dives.length + ' dives)' + '
' + '';
};
- for(var i=0;i'+getlimited(trips[trip].dives[j])+'';
- }
+ var d = document.getElementById("trip_dive_list_" + trip);
+ for (var j in trips[trip].dives) {
+ d.innerHTML += '' + getlimited(trips[trip].dives[j]) + '
';
+ }
}
-function unexpand_trip(trip){
+function unexpand_trip(trip)
+{
trips[trip].expanded = false;
- var d = document.getElementById("trip_dive_list_"+trip);
- d.innerHTML='';
+ var d = document.getElementById("trip_dive_list_" + trip);
+ d.innerHTML ='';
}
-function getItems(){
+function getItems()
+{
var count = 0;
- for(var i in trips){
- for(var j in trips[i].dives){
- items[count++]=trips[i].dives[j];
+ for (var i in trips) {
+ for (var j in trips[i].dives) {
+ items[count++] = trips[i].dives[j];
}
}
}
@@ -585,28 +644,37 @@ function getItems(){
/*
Canvas Colors Constants
*/
-var CAMARONE1 = rgb(0,0.4,0);
-var LIMENADE1 = rgb(0.4,0.8,0);
-var RIOGRANDE1 = rgb (0.8,0.8,0);
-var PIRATEGOLD1= rgb(0.8,0.5,0);
-var RED1 = rgb(1,0,0);
+var CAMARONE1 = rgb(0, 0.4, 0);
+var LIMENADE1 = rgb(0.4, 0.8, 0);
+var RIOGRANDE1 = rgb(0.8, 0.8, 0);
+var PIRATEGOLD1 = rgb(0.8, 0.5, 0);
+var RED1 = rgb(1, 0, 0);
/*
Some Global variables that hold the current shown dive data.
*/
-var dive_id;//current shown ID
-var points;//reference to the samples array of the shown dive.
-var MAX_HEIGHT;//Maximum depth, then its the maximum height for canvas
-var MAX_WIDTH;//dive duration, then its the maximum width for canvas
+var dive_id; //current shown ID
+var points; //reference to the samples array of the shown dive.
+var MAX_HEIGHT; //Maximum depth, then its the maximum height for canvas
+var MAX_WIDTH; //dive duration, then its the maximum width for canvas
/**
*Return RGB css color string.
*/
-function rgb(r, g, b){
- r = Math.floor(r*255);
- g = Math.floor(g*255);
- b = Math.floor(b*255);
- return ["rgb(",r,",",g,",",b,")"].join("");
+function rgb(r, g, b)
+{
+ r = Math.floor(r * 255);
+ g = Math.floor(g * 255);
+ b = Math.floor(b * 255);
+ return[
+ "rgb(",
+ r,
+ ",",
+ g,
+ ",",
+ b,
+ ")"
+ ].join("");
}
/**
@@ -614,10 +682,11 @@ function rgb(r, g, b){
*new scale = (old scale * height of canvas) / max height in dive
*to ensure that the dive profile is filling the whole area available
*/
-function scaleHeight(vari){
+function scaleHeight(vari)
+{
var height = document.getElementById("profileCanvas").height;
max = MAX_HEIGHT;
- return (vari*height)/max;
+ return (vari * height) / max;
}
/**
@@ -625,22 +694,24 @@ function scaleHeight(vari){
*new scale = (old scale * width of canvas) / max width in dive
*to ensure that the dive profile is filling the whole area available
*/
-function scaleWidth(vari){
+function scaleWidth(vari)
+{
var width = document.getElementById("profileCanvas").width;
max = MAX_WIDTH;
- return (vari*width)/max;
+ return (vari * width) / max;
}
/**
*Show Axis information(Numbers on scale)
*put a Number every 300 second scaled to canvas width.
*/
-function canvas_showAxisInfo(){
- var c=document.getElementById("profileCanvas");
- var ctx=c.getContext("2d");
- ctx.font="27px Georgia";/*This is better be a variable scale*/
- for (var i=0;i 300 ) return RED1;
- if (Math.abs(slope) > 180 ) return PIRATEGOLD1;
- if (Math.abs(slope) > 110 ) return RIOGRANDE1;
- if (Math.abs(slope) > 70 ) return LIMENADE1;
+function getcolor(begin, end)
+{
+ var slope = (end[1] - begin[1]) / (end[0] - begin[0]);
+ if (Math.abs(slope) > 300)
+ return RED1;
+ if (Math.abs(slope) > 180)
+ return PIRATEGOLD1;
+ if (Math.abs(slope) > 110)
+ return RIOGRANDE1;
+ if (Math.abs(slope) > 70)
+ return LIMENADE1;
return CAMARONE1;
}
/**
*Return the HTML string for a dive cylinder entry in the table.
*/
-function get_cylinder_HTML(cylinder){
- return ''+cylinder.Type+' | '+cylinder.Size+' | '+cylinder.WPressure+' | '+
- ''+cylinder.SPressure+' | '+cylinder.EPressure+' | '+cylinder.O2+' |
';
+function get_cylinder_HTML(cylinder)
+{
+ return '' + cylinder.Type + ' | ' + cylinder.Size + ' | ' + cylinder.WPressure + ' | ' +
+ '' + cylinder.SPressure + ' | ' + cylinder.EPressure + ' | ' + cylinder.O2 + ' |
';
}
/**
*Return HTML table of cylinders of a dive.
*/
-function get_cylinders_HTML(dive){
- var result="";
- result +='Dive equipments
Type | Size | Work Pressure | Start Pressure | End Pressure | O2 |
';
- for (var i in dive.Cylinders){
- result+=get_cylinder_HTML(dive.Cylinders[i]);
+function get_cylinders_HTML(dive)
+{
+ var result = "";
+ result += 'Dive equipments
Type | Size | Work Pressure | Start Pressure | End Pressure | O2 |
';
+ for (var i in dive.Cylinders) {
+ result += get_cylinder_HTML(dive.Cylinders[i]);
}
- result+='
';
+ result += '
';
return result;
}
/**
*Return HTML main data of a dive
*/
-function get_dive_HTML(dive) {
- return 'Dive Information
Date: | '+dive.date+
- ' |      Time: | '+dive.time +
- ' |      Location: | '+''+
- dive.location +''+
- ' |
Rating: | '+putRating(dive.rating)+
- ' |    Visibilty: | '+putRating(dive.visibility)+
- ' |
'+
- 'Air temp: | '+dive.temperature.air+
- ' |     Water temp: | '+dive.temperature.water +
- ' |
DiveMaster: | '+dive.divemaster +
- ' |
Buddy: | '+dive.buddy +
- ' |
Suit: | '+dive.suit +
- ' |
Tags: | '+putTags(dive.tags)+
- ' |
';
+function get_dive_HTML(dive)
+{
+ return 'Dive Information
Date: | ' + dive.date +
+ ' |      Time: | ' + dive.time +
+ ' |      Location: | ' + '' +
+ dive.location + '' +
+ ' |
Rating: | ' + putRating(dive.rating) +
+ ' |    Visibilty: | ' + putRating(dive.visibility) +
+ ' |
' +
+ 'Air temp: | ' + dive.temperature.air +
+ ' |     Water temp: | ' + dive.temperature.water +
+ ' |
DiveMaster: | ' + dive.divemaster +
+ ' |
Buddy: | ' + dive.buddy +
+ ' |
Suit: | ' + dive.suit +
+ ' |
Tags: | ' + putTags(dive.tags) +
+ ' |
Notes:
' + dive.notes + '
';
};
/**
*Main canvas draw function
*this calls the axis and grid initialization functions.
*/
-function canvas_draw(){
- var c=document.getElementById("profileCanvas");
+function canvas_draw()
+{
+ var c = document.getElementById("profileCanvas");
c.width = window.innerWidth;
c.height = window.innerHeight;
canvas_showGrid();
canvas_showAxisInfo();
- var ctx=c.getContext("2d");
- ctx.lineWidth=4 //variable width
- //draw starting line, draw all samples then draw the final line.
- canvas_drawline(ctx,[0,0],points[0]);
- for(var i=1;i0){
+function prevDetailedDive()
+{
+ if (dive_id > 0) {
showDiveDetails(--dive_id);
}
}