annotate jqBarGraph.2.1.js @ 37:f325e9116e21 draft

Uploaded
author mzeidler
date Mon, 30 Sep 2013 20:18:24 -0400
parents e4b30166e311
children 310843ad5112
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
1 /**
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
2 * jqBarGraph - jQuery plugin
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
3 * @version: 1.1 (2011/04/03)
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
4 * @requires jQuery v1.2.2 or later
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
5 * @author Ivan Lazarevic
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
6 * Examples and documentation at: http://www.workshop.rs/jqbargraph/
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
7 *
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
8 * Dual licensed under the MIT and GPL licenses:
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
9 * http://www.opensource.org/licenses/mit-license.php
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
10 * http://www.gnu.org/licenses/gpl.html
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
11 *
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
12 * @param data: arrayOfData // array of data for your graph
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
13 * @param title: false // title of your graph, accept HTML
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
14 * @param barSpace: 10 // this is default space between bars in pixels
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
15 * @param width: 400 // default width of your graph ghhjgjhg
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
16 * @param height: 200 //default height of your graph
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
17 * @param color: '#000000' // if you don't send colors for your data this will be default bars color
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
18 * @param colors: false // array of colors that will be used for your bars and legends
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
19 * @param lbl: '' // if there is no label in your array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
20 * @param sort: false // sort your data before displaying graph, you can sort as 'asc' or 'desc'
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
21 * @param position: 'bottom' // position of your bars, can be 'bottom' or 'top'. 'top' doesn't work for multi type
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
22 * @param prefix: '' // text that will be shown before every label
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
23 * @param postfix: '' // text that will be shown after every label
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
24 * @param animate: true // if you don't need animated appereance change to false
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
25 * @param speed: 2 // speed of animation in seconds
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
26 * @param legendWidth: 100 // width of your legend box
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
27 * @param legend: false // if you want legend change to true
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
28 * @param legends: false // array for legend. for simple graph type legend will be extracted from labels if you don't set this
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
29 * @param type: false // for multi array data default graph type is stacked, you can change to 'multi' for multi bar type
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
30 * @param showValues: true // you can use this for multi and stacked type and it will show values of every bar part
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
31 * @param showValuesColor: '#fff' // color of font for values
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
32
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
33 * @example $('#divForGraph').jqBarGraph({ data: arrayOfData });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
34
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
35 **/
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
36
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
37 (function($) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
38 var opts = new Array;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
39 var level = new Array;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
40
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
41 $.fn.jqBarGraph = $.fn.jqbargraph = function(options){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
42
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
43 init = function(el){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
44
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
45 opts[el.id] = $.extend({}, $.fn.jqBarGraph.defaults, options);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
46 $(el).css({ 'width': opts[el.id].width, 'height': opts[el.id].height, 'position':'relative', 'text-align':'center' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
47
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
48
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
49 doGraph(el);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
50
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
51 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
52
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
53 // sum of array elements
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
54 sum = function(ar,index){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
55 total = 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
56 for(val in ar){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
57 total += ar[val][index];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
58 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
59 return total.toFixed(2);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
60 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
61
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
62 // count max value of array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
63 max = function(ar,index){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
64 maxvalue = 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
65 for(var val in ar){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
66 value = ar[val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
67 if(value instanceof Array) value = sum(value,index);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
68 if (parseFloat(value) > parseFloat(maxvalue)) maxvalue=value;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
69 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
70 return maxvalue;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
71 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
72
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
73 // max value of multi array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
74 maxMulti = function(ar,index){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
75 maxvalue = 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
76 maxvalue2 = 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
77
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
78 for(var val in ar){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
79 ar2 = ar[val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
80
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
81 for(var val2 in ar2){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
82 if(ar2[val2][index]>maxvalue2) maxvalue2 = ar2[val2][index];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
83 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
84
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
85 if (maxvalue2>maxvalue) maxvalue=maxvalue2;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
86 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
87
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
88 return maxvalue;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
89 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
90
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
91
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
92 doGraph = function(el){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
93
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
94 arr = opts[el.id];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
95 data = arr.data;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
96 if(arr.tab=='reads'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
97 val_index=0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
98 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
99 else{
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
100 val_index=1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
101 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
102
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
103 //check if array is bad or empty
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
104 if(data == undefined) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
105 $(el).html('There is not enought data for graph');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
106 return;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
107 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
108 //sorting ascending or descending
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
109 if(arr.tab == 'reads'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
110 if(arr.sort == 'asc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
111 data.sort(sortReadsAsc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
112 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
113 if(arr.sort == 'desc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
114 data.sort(sortReadsDesc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
115 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
116 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
117 if(arr.tab == 'basepairs'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
118 if(arr.sort == 'asc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
119 data.sort(sortBasesAsc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
120 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
121 if(arr.sort == 'desc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
122 data.sort(sortBasesDesc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
123 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
124 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
125 if(arr.sortBar == 'asc') sortBars(data, barAsc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
126 if(arr.sortBar == 'desc')sortBars(data, barDesc);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
127
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
128
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
129
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
130 legend = '';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
131 prefix = arr.prefix;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
132 postfix = arr.postfix;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
133 space = arr.barSpace; //space between bars
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
134 legendWidth = arr.legend ? arr.legendWidth : 0; //width of legend box
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
135 fieldWidth = ($(el).width()-legendWidth)/data.length; //width of bar
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
136 totalHeight = $(el).height(); //total height of graph box
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
137 var leg = new Array(); //legends array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
138
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
139 //max value in data, I use this to calculate height of bar
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
140 max = max(data,val_index);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
141
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
142 color_map={};
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
143 color_map["pathogen"]=arr.colors[0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
144 color_map["ambiguous"]=arr.colors[1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
145 color_map["human"]=arr.colors[2];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
146
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
147 if(arr.tab=='reads'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
148 val_index=0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
149 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
150 else{
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
151 val_index=1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
152
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
153 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
154
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
155 for(var val in data){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
156
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
157 valueData = data[val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
158 if (valueData instanceof Array)
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
159 value = sum(valueData,val_index);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
160 else
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
161 value = valueData;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
162
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
163 lbl = data[val][1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
164 unique = val+el.id; //unique identifier
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
165 divid=""+el.id;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
166
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
167 if(arr.type == 'multi') color = 'none';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
168
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
169 if (lbl == undefined) lbl = arr.lbl;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
170
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
171 margin_top=14/(data.length);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
172
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
173
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
174 out = "<div class='graphField"+el.id+"' id='graphField"+unique+"' style='position: absolute'>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
175 out += "<div class='graphValue"+el.id+"' id='graphValue"+unique+"'>"+parseInt(value)+"</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
176
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
177 out += "<div class='graphBar"+el.id+"' id='graphFieldBar"+unique+"' style='background-color:#fff;position: relative; overflow: hidden;'></div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
178 //console.log(color)
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
179 // if there is no legend or exist legends display lbl at the bottom
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
180
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
181 out += "<a class='graphLabelLink' href=#files"+el.id+" onclick=fillDiv('"+el.id+"','"+valueData[0][3]+"_"+lbl+"')><div class='graphLabel"+el.id+"' id='graphLabel"+unique+"'style='margin-top:"+margin_top+"px;'>"+lbl+"</div></a>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
182 out += "</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
183
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
184
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
185
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
186 $(el).append(out);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
187 $(".graphLabel"+el.id).css({'-webkit-transform': 'rotate(30deg)', '-moz-transform': 'rotate(30deg)','-o-transform': 'rotate(30deg)', '-ms-transform': 'rotate(30deg)','transform': 'rotate(30deg)', 'height':'100'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
188 $('a.graphLabel').css({
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
189 'text-decoration': 'none',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
190 'color':'black'
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
191 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
192
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
193 //$('#graphLabel'+el.id).rotateLeft();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
194
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
195 //size of bar
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
196 totalHeightBar = totalHeight - $('.graphLabel'+el.id).height() - $('.graphValue'+el.id).height()-margin_top;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
197 fieldHeight = (totalHeightBar*value)/max;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
198 $('#graphField'+unique).css({
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
199 'left': (fieldWidth)*val,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
200 'width': fieldWidth-space,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
201 'margin-left': space});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
202
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
203 // multi array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
204 if(valueData instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
205
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
206 if(arr.type=="multi"){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
207
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
208 maxe = maxMulti(data,val_index);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
209 totalHeightBar = fieldHeight = totalHeight - $('.graphLabel'+el.id).height()-margin_top;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
210 $('.graphValue'+el.id).remove();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
211 } else {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
212
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
213 maxe = max;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
214 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
215
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
216 for (i in valueData){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
217 heig = (totalHeightBar*valueData[i][val_index]/maxe);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
218 if(navigator.userAgent.match('Safari') && !navigator.userAgent.match('Chrom')){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
219
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
220 heig = heig + (arr.borderSize/1.85);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
221 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
222
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
223 wid = parseInt((fieldWidth-space)/valueData.length);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
224
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
225 sv = ''; // show values
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
226 fs = 0; // font size
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
227 if (arr.showValues){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
228 sv = arr.prefix+valueData[i][0]+arr.postfix;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
229 fs = 12; // font-size is 0 if showValues = false
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
230 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
231 o = "<a class='subBarLink' href=#files"+el.id+" onclick=fillDiv('"+el.id+"','"+valueData[i][3]+"_"+lbl+"','"+valueData[i][5]+"')><div class='subBars"+el.id+"' style=' box-sizing:border-box; -moz-box-sizing:border-box; -ms-box-sizing:border-box; -webkit-box-sizing:border-box; height:"+heig+"px; border-top:"+arr.borderSize+"px solid; border-color: "+arr.showValuesColor+"; background-color: "+color_map[valueData[i][2]]+"; left:"+wid*i+"px; color:"+arr.showValuesColor+"; font-size:"+fs+"px' >"+sv+"</div></a>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
232 $('#graphFieldBar'+unique).prepend(o);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
233 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
234 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
235
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
236 if(arr.type=='multi')
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
237 $('.subBars'+el.id).css({ 'width': wid, 'position': 'absolute', 'bottom': 0 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
238
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
239 //position of bars
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
240 if(arr.position == 'bottom') $('.graphField'+el.id).css('bottom',0);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
241
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
242
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
243
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
244
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
245
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
246 // animated apearing
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
247 if(arr.animate){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
248 $('#graphFieldBar'+unique).css({ 'height' : 0 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
249 $('#graphFieldBar'+unique).animate({'height': fieldHeight},arr.speed*1000);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
250 } else {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
251 $('#graphFieldBar'+unique).css({'height': fieldHeight});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
252 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
253
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
254 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
255
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
256
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
257
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
258 createLegend(color_map,el.id); // create legend from array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
259 createLinks(el.id);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
260 //position of legend
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
261
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
262 $(el).append("<div id='legendHolder"+unique+"'></div>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
263 $('#legendHolder'+unique).css({ 'width': legendWidth, 'float': 'right', 'margin-left':'100px','text-align' : 'left'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
264 $('#legendHolder'+unique).append(legend);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
265 $('#legendHolder'+unique).append(links);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
266 $('.legendBar'+el.id).css({ 'float':'left', 'margin': 3, 'margin-left':'10','height': 12, 'width': 20, 'font-size': 0});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
267 $('.linkBar'+el.id).css({'margin-left':'10'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
268
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
269
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
270 $("#sortAsc"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
271 if(opts[el.id].sort!='asc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
272 opts[el.id].sort='asc';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
273 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
274 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
275 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
276
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
277 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
278 $("#sortDesc"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
279 if(opts[el.id].sort!='desc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
280 opts[el.id].sort='desc';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
281 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
282 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
283 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
284
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
285 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
286 $("#sortBarAsc"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
287 if(opts[el.id].sortBar!='asc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
288 opts[el.id].sortBar='asc';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
289 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
290 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
291 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
292
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
293 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
294 $("#sortBarDesc"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
295 if(opts[el.id].sortBar!='desc'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
296 opts[el.id].sortBar='desc';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
297 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
298 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
299 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
300
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
301 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
302
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
303 $("#showBasepairs"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
304 opts[el.id].tab='basepairs';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
305 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
306 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
307
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
308
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
309
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
310 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
311 $("#showReads"+el.id).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
312 opts[el.id].tab='reads';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
313 $('#graphHolder'+el.id).html('');
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
314 $('#graphHolder'+el.id).jqbargraph(opts[el.id]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
315
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
316
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
317
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
318 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
319
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
320
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
321
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
322 //position of title
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
323 if(arr.title){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
324 $(el).wrap("<div id='graphHolder"+el.id+"'></div>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
325 if(arr.tab=='reads'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
326 $('#graphHolder'+el.id).prepend("<div id='label"+el.id+"'>Cumulative reads assigned to family</div>").css({ 'width' : arr.width+'px', 'text-align' : 'center' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
327 }else{
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
328 $('#graphHolder'+el.id).prepend("<div id='label"+el.id+"'>Cumulative basepairs assigned to family</div>").css({ 'width' : arr.width+'px', 'text-align' : 'center' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
329 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
330 $('#graphHolder'+el.id).prepend("<a href=#files"+el.id+" onclick=fillDiv('"+el.id+"')>"+arr.title+"</a>").css({ 'width' : arr.width+'px', 'text-align' : 'center' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
331
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
332 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
333 $("#graphHolder"+el.id).append("<div class='files"+el.id+"' id='files"+el.id+"' ></div><p/>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
334 $('.files'+el.id).css({'width' : arr.width+'px','background-color':'silver', 'border':'2px solid gray', 'display':'none'})
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
335
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
336 $("#graphHolder"+el.id).append("<div class='image"+el.id+"' id='image"+el.id+"' ></div>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
337 $('.image'+el.id).css({'width' : arr.width+'px','background-color':'silver', 'border':'2px solid gray', 'display':'none'})
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
338
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
339 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
340
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
341
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
342 //creating legend from array
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
343 createLegend = function(color_map,id){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
344 legend = '';
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
345 for(var val in color_map){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
346 legend += "<div id='legend"+val+"' style='overflow: hidden; zoom: 1;'>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
347 legend += "<div class='legendBar"+id+"' id='legendColor"+val+"' style='background-color:"+color_map[val]+"'></div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
348 legend += "<div class='legendLabel"+id+"' id='graphLabel"+unique+"'>"+val+"</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
349 legend += "</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
350 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
351 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
352
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
353 createLinks = function(id){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
354 links="<div class='linkBar"+id+"'>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
355 links+="<div ><a href='javascript:void(0);' id='sortAsc"+id+"' >sort ascending</a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
356 links+="<div ><a href='javascript:void(0);' id='sortDesc"+id+"'>sort descending</a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
357 links+="<div ><a href='javascript:void(0);' id='sortBarAsc"+id+"'>sort bars ascending</a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
358 links+="<div ><a href='javascript:void(0);' id='sortBarDesc"+id+"'>sort bars descending</a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
359 if(opts[id].tab=='reads'){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
360 links+="<div ><a href='javascript:void(0);' id='showBasepairs"+id+"'>show basepair chart </a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
361 }else{
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
362 links+="<div ><a href='javascript:void(0);' id='showReads"+id+"'>show read chart </a></div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
363 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
364 links+="</div>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
365
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
366
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
367 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
368
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
369 fillDiv = function (elid, dir, region) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
370
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
371
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
372
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
373 arr=opts[elid];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
374
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
375 dict=arr.files;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
376
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
377 generateDownloadLink = function(family,region,filetype){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
378 out=" no file ";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
379
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
380 if($.inArray("region_"+region+"_"+filetype,dict[family][region])!=-1){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
381 out="<a href="+family+"/region_"+region+"_"+filetype+">download</a>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
382 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
383 return out;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
384
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
385 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
386 generateShowLink = function(family,region){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
387 out=" no image ";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
388
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
389 if($.inArray("region_"+region+"_consensus.png",dict[family][region])!=-1){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
390 out="<a href=#image"+elid+" onclick=showImage('"+elid+"','"+region+"','"+ family +"/region_"+region+"_consensus.png')>show</a>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
391 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
392 return out;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
393
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
394 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
395
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
396
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
397 data = arr.data
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
398 for(var val in data){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
399 for(var element in data[val][0]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
400 dict[data[val][0][0][3]+"_"+data[val][1]][data[val][0][element][5]].push([data[val][0][element][0],data[val][0][element][1],data[val][0][element][4]]);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
401
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
402 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
403 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
404
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
405 var div = document.getElementById("files" + elid);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
406 div.innerHTML="";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
407
15
73c223d283a4 Uploaded
mzeidler
parents: 12
diff changeset
408 out = "<div><H3>Files for Sample "+arr.sample+"</H3></div><p/>";
12
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
409
15
73c223d283a4 Uploaded
mzeidler
parents: 12
diff changeset
410 out += "<div class='" + elid + "_files' id='" + elid + "_files'><table id='"+elid+"table' class='"+elid+"table' border=1 cellpadding=3 cellspacing=0 style=' border: 1pt solid #000000; border-Collapse: collapse; font-size: 12px;'>";
12
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
411 out += "<tr><th>family</th><th>region</th><th>#reads</th><th>#basepairs</th><th>region length</th><th>unaligned fasta</th><th>bam alignment</th><th>consensus fasta</th><th>consensus diagram</th></tr>"
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
412 if (!dir) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
413 for (var directory in dict) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
414 //out += "<b>"+directory+"</b>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
415 //out += "<div class='dirlist' id='" + directory + "_files'";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
416 for (var region in dict[directory]) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
417 last = dict[directory][region][dict[directory][region].length-1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
418 if(last instanceof Array && last[0]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
419 out += "<tr><td>"+directory+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(directory,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(directory,region,"alignment.bam")+"</td><td>"+generateDownloadLink(directory,region,"consensus.fa")+"</td><td>"+generateShowLink(directory,region)+" "+generateDownloadLink(directory,region,"consensus.png")+"</td></tr>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
420 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
421 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
422 out += "</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
423 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
424 } else {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
425 out += "<b>"+ dir+"</b>" ;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
426
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
427 if (!region) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
428 for (var region in dict[dir]) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
429 last = dict[dir][region][dict[dir][region].length-1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
430 if(last instanceof Array && last[0]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
431 out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
432 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
433 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
434 } else {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
435
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
436 last = dict[dir][region][dict[dir][region].length-1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
437 if(last instanceof Array && last[0]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
438 out += "<tr><td>"+dir+"</td><td>"+region+"</td><td>"+last[0]+"</td><td>"+last[1]+"</td><td>"+last[2]+"</td><td>"+generateDownloadLink(dir,region,"unaligned.fa.bzip2")+"</td><td>"+generateDownloadLink(dir,region,"alignment.bam")+"</td><td>"+generateDownloadLink(dir,region,"consensus.fa")+"</td><td>"+generateShowLink(dir,region)+" "+generateDownloadLink(dir,region,"consensus.png")+"</td></tr>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
439 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
440 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
441 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
442 out += "</div>";
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
443
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
444 $(div).append(out);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
445 $(div).append("<div class='close_files"+elid+"'style='cursor:pointer;'>x</div>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
446 $("a").css({'color':'black'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
447 $("table").css({'border':'collapse'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
448
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
449 $(".close_files"+elid).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
450 $('.files'+elid).animate({'height':'0px'},1000,'',function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
451 $('.files'+elid).css({'display':'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
452 $('.files'+elid).removeClass("selected");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
453 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
454
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
455
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
456 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
457 $("div.close_files"+elid).css({'color':'white','position':'absolute','top':'2','left':'2','background-color':arr.colors[1],'border':'1px solid white','border-radius':'20px','height':'20px','width':'20px','text-align': 'center'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
458 $("a.close_files"+elid).css({'color':'white', 'text-decoration': 'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
459 $('.files'+elid).css({'width': 'auto','display':'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
460 wi=$('.files'+elid).width()+15;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
461
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
462
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
463
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
464 if(!$('.files'+elid).hasClass("selected")){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
465 $('.files'+elid).css({'height': 'auto','display':'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
466 hei=$('.files'+elid).height();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
467 hei=parseInt(hei)+10;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
468 hei=hei>400? hei=400 : hei;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
469 $('.files'+elid).css({'width':wi+'px','position':'relative','height':'0px', 'overflow' : 'auto','background-color':'rgb(223, 229, 249)', 'border':'2px solid silver', 'display':'block' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
470 $('.files'+elid).animate({'height':hei+'px'}, 1000,'',function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
471
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
472 $('.files'+elid).addClass("selected");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
473 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
474 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
475 else{
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
476
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
477 curr_hei=$('.files'+elid).height();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
478 $('.files'+elid).css({'height': 'auto','display':'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
479 hei=$('.files'+elid).height();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
480 hei=parseInt(hei)+10;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
481 hei=hei>400? hei=400 : hei;
36
e4b30166e311 Uploaded
mzeidler
parents: 35
diff changeset
482 $('.files'+elid).css({'height': curr_hei+'px', 'width':wi+'px','position':'relative', 'overflow' : 'auto','background-color':'rgb(223, 229, 249)', 'border':'2px solid silver', 'display':'block' }).animate({'height':hei+'px'}, 1000);
12
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
483 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
484 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
485
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
486
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
487 showImage = function (elid,region, consensus_image,wi) {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
488 var div = document.getElementById("image" + elid);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
489 div.innerHTML="";
15
73c223d283a4 Uploaded
mzeidler
parents: 12
diff changeset
490 out="<div><H3>Consensus Image for Region "+region+"</H3></div>";
35
1a06678bafa6 Uploaded
mzeidler
parents: 34
diff changeset
491 newImg= new Image();
36
e4b30166e311 Uploaded
mzeidler
parents: 35
diff changeset
492 newImg.src=consensus_image;
37
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
493 wid=0;
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
494 hig=0;
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
495 newImg.onload = function(){
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
496 wid=this.width;
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
497 hig=this.height;
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
498 };
f325e9116e21 Uploaded
mzeidler
parents: 36
diff changeset
499
34
b5257053fa73 Uploaded
mzeidler
parents: 33
diff changeset
500 out+="<img id='image_file"+elid+"' src="+consensus_image+" alt="+consensus_image+" style='width:"+wid+";height:"+hig+";'>";
12
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
501 $(div).append(out)
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
502
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
503
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
504 $(div).append("<div class='close_image"+elid+"'style='cursor:pointer;'>x</div>");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
505 $(".close_image"+elid).click(function(){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
506
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
507 $('.image'+elid).css({'display':'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
508 $('.image'+elid).removeClass("selected");
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
509
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
510
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
511 });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
512 $("div.close_image"+elid).css({'color':'white','position':'absolute','top':'2','left':'2','background-color':arr.colors[1],'border':'1px solid white','border-radius':'20px','height':'20px','width':'20px','text-align': 'center'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
513 $("a.close_image"+elid).css({'color':'white', 'text-decoration': 'none'});
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
514
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
515 wi=$('.files'+elid).width();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
516
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
517
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
518 if(!$('.image'+elid).hasClass("selected")){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
519 $('.image'+elid).css({'width':wi+'px','position':'relative','height':'auto', 'overflow' : 'auto','background-color':'rgb(223, 229, 249)', 'border':'2px solid silver', 'display':'block' });
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
520
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
521 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
522
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
523 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
524
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
525
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
526 this.each (
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
527 function()
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
528 { init(this); }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
529 )
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
530
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
531 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
532
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
533 // default values
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
534 $.fn.jqBarGraph.defaults = {
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
535 sample: 'no_sample_id',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
536 barSpace: 10,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
537 width: 400,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
538 height: 600,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
539 color: '#000000',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
540 colors: false,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
541 lbl: '',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
542 sort: false, // 'asc' or 'desc'
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
543 sortBar: false,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
544 tab: 'reads',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
545 position: 'bottom', // or 'top' doesn't work for multi type
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
546 prefix: '',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
547 postfix: '',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
548 animate: true,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
549 speed: 3.0,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
550 legendWidth: 150,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
551 legend: false,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
552 type: false, // or 'multi'
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
553 showValues: false,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
554 borderSize: 1,
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
555 showValuesColor: '#fff',
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
556 title: false
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
557 };
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
558
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
559
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
560 //sorting functions
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
561 function sortReadsAsc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
562 sum_a=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
563 for(var values in a){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
564 if(a[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
565 for(var val in a[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
566 sum_a+=a[values][val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
567 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
568 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
569 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
570 sum_b=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
571 for(var values in b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
572 if(b[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
573 for(var val in b[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
574 sum_b+=b[values][val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
575 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
576 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
577 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
578
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
579 if (sum_a<sum_b) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
580 if (sum_a>sum_b) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
581 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
582 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
583 function sortBasesAsc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
584 sum_a=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
585 for(var values in a){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
586 if(a[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
587 for(var val in a[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
588 sum_a+=a[values][val][1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
589 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
590 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
591 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
592 sum_b=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
593 for(var values in b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
594 if(b[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
595 for(var val in b[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
596 sum_b+=b[values][val][1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
597 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
598 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
599 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
600
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
601 if (sum_a<sum_b) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
602 if (sum_a>sum_b) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
603 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
604 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
605
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
606 function sortReadsDesc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
607 sum_a=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
608 for(var values in a){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
609 if(a[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
610 for(var val in a[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
611 sum_a+=a[values][val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
612 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
613 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
614 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
615 sum_b=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
616 for(var values in b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
617 if(b[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
618 for(var val in b[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
619 sum_b+=b[values][val][0];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
620 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
621 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
622 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
623
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
624 if (sum_a<sum_b) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
625 if (sum_a>sum_b) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
626 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
627 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
628 function sortBasesDesc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
629 sum_a=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
630 for(var values in a){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
631 if(a[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
632 for(var val in a[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
633 sum_a+=a[values][val][1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
634 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
635 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
636 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
637 sum_b=0
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
638 for(var values in b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
639 if(b[values] instanceof Array){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
640 for(var val in b[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
641 sum_b+=b[values][val][1];
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
642 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
643 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
644 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
645
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
646 if (sum_a<sum_b) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
647 if (sum_a>sum_b) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
648 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
649 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
650
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
651 function sortBars(data,fun){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
652 for(var values in data){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
653 last = data[values].pop();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
654 for(var val in data[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
655 data[values][val].sort(fun);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
656 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
657 data[values].push(last);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
658 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
659 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
660
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
661 function sortBars(data,fun){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
662 for(var values in data){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
663 last = data[values].pop();
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
664 for(var val in data[values]){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
665 data[values][val].sort(fun);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
666 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
667 data[values].push(last);
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
668 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
669 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
670
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
671
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
672
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
673 function barAsc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
674 if(a[0]<b[0]) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
675 if(a[0]>b[0]) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
676 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
677 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
678
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
679 function barDesc(a,b){
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
680 if(a[0]<b[0]) return 1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
681 if(a[0]>b[0]) return -1;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
682 return 0;
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
683 }
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
684
af2085ce7001 Uploaded
mzeidler
parents:
diff changeset
685 })(jQuery);