OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
D3
/
parallel
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/14/2022 11:05:22 AM
rwxr-xr-x
📄
Parallel_Coordinate_Chart.js
7.37 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
backbone.js
41.59 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
filter.js
2.87 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
grid.js
4.07 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
jquery.event.drag-2.0.min.js
4.76 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
options.js
1.25 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
parallel-coordinates-lib.js
6.51 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
parallelAll.js
104.05 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
pie.js
2.16 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
slick.core.js
12.36 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
slick.dataview.js
18.52 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
slick.grid.css
2.7 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
slick.grid.js
95.33 KB
08/14/2022 11:05:22 AM
rw-r--r--
📄
slick.pager.js
5.16 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
style.css
6.25 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
tags
16.52 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
underscore.js
33.69 KB
08/14/2022 11:05:21 AM
rw-r--r--
Editing: parallelAll.js
Close
(function(a){window.parallel=function(j,c,n,h,l,f){var p={},b,o={},i=null,e=a.select("#parallel");var q=a.svg.line().interpolate("cardinal").tension(0.85),g=a.svg.axis().orient("left"),d,m;var k=j.get("data");p.update=function(r){k=r};p.render=function(){e.select("svg").remove();var r=[$(e[0]).width(),$(e[0]).height()],s=[30,10,10,10],E=r[0]-s[1]-s[3],u=r[1]-s[0]-s[2];var D=a.scale.ordinal().rangePoints([0,E],1),C={};var v=e.append("svg:svg").attr("width",E+s[1]+s[3]).attr("height",u+s[0]+s[2]).append("svg:g").attr("transform","translate("+s[3]+","+s[0]+")");D.domain(b=a.keys(k[0]).filter(function(G){var y=0;for(var w=0;w<n;w++){if(G==h[w]){y=1;break}}if(!y&&G!="id"){var x=a.extent(k,function(H){return +H[G]});C[G]=a.scale.linear().domain(x).range([u,0]);return C[G]}else{return false}}));d=v.append("svg:g").attr("class","background").selectAll("path").data(k).enter().append("svg:path").attr("d",F);m=v.append("svg:g").attr("class","foreground").selectAll("path").data(k).enter().append("svg:path").attr("d",F).attr("style",function(w){return"stroke:"+c[a.values(w).toString().split(",")[n-1]]+";"});var z=v.selectAll(".dimension").data(b).enter().append("svg:g").attr("class","dimension").attr("transform",function(w){return"translate("+D(w)+")"}).call(a.behavior.drag().on("dragstart",function(w){o[w]=this.__origin__=D(w);d.attr("visibility","hidden")}).on("drag",function(w){o[w]=Math.min(E,Math.max(0,this.__origin__+=a.event.dx));m.attr("d",F);b.sort(function(y,x){return t(y)-t(x)});D.domain(b);z.attr("transform",function(x){return"translate("+t(x)+")"})}).on("dragend",function(w){delete this.__origin__;delete o[w];A(a.select(this)).attr("transform","translate("+D(w)+")");A(m).attr("d",F);d.attr("d",F).transition().delay(500).duration(0).attr("visibility",null)}));z.append("svg:g").attr("class","axis").each(function(x,w){a.select(this).call(g.scale(C[x]).tickFormat(function(y){return formatSmallScale(y,f[w])}))}).append("svg:text").attr("text-anchor","middle").attr("y",-9).text(String);z.append("svg:g").attr("class","brush").each(function(w){a.select(this).call(C[w].brush=a.svg.brush().y(C[w]).on("brush",B))}).selectAll("rect").attr("x",-12).attr("width",24);function t(x){var w=o[x];return w==null?D(x):w}function F(w){return q(b.map(function(x){return[t(x),C[x](w[x])]}))}function B(){var y=b.filter(function(G){return !C[G].brush.empty()});var x=y.map(function(G){return C[G].brush.extent()});var w={};_(y).each(function(H,G){w[H]={min:x[G][0],max:x[G][1]}});j.set({filter:w});m.style("display",function(G){return y.every(function(I,H){return x[H][0]<=G[I]&&G[I]<=x[H][1]})?null:"none"})}function A(w){return w.transition().duration(500)}p.highlight=function(w){if(typeof w=="undefined"){a.select("#parallel .foreground").style("opacity",function(y,x){return"1"});i.remove()}else{a.select("#parallel .foreground").style("opacity",function(y,x){return"0.35"});if(i!=null){i.remove()}i=v.append("svg:g").attr("class","highlight").selectAll("path").data([j.get("filtered")[w]]).enter().append("svg:path").attr("d",F).attr("style",function(x){return"stroke:"+c[a.values(x).toString().split(",")[n-1]]+";"})}}};return p}})(d3);(function(){var v=this;var s=v._;var b={};var j=Array.prototype,B=Object.prototype,E=Function.prototype;var t=j.slice,x=j.unshift,w=B.toString,p=B.hasOwnProperty;var n=j.forEach,i=j.map,z=j.reduce,e=j.reduceRight,m=j.filter,a=j.every,y=j.some,u=j.indexOf,f=j.lastIndexOf,c=Array.isArray,A=Object.keys,k=E.bind;var D=function(G){return new g(G)};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=D}exports._=D}else{if(typeof define==="function"&&define.amd){define("underscore",function(){return D})}else{v._=D}}D.VERSION="1.2.2";var d=D.each=D.forEach=function(L,K,J){if(L==null){return}if(n&&L.forEach===n){L.forEach(K,J)}else{if(L.length===+L.length){for(var I=0,G=L.length;I<G;I++){if(I in L&&K.call(J,L[I],I,L)===b){return}}}else{for(var H in L){if(p.call(L,H)){if(K.call(J,L[H],H,L)===b){return}}}}}};D.map=function(J,I,H){var G=[];if(J==null){return G}if(i&&J.map===i){return J.map(I,H)}d(J,function(M,K,L){G[G.length]=I.call(H,M,K,L)});return G};D.reduce=D.foldl=D.inject=function(K,J,G,I){var H=G!==void 0;if(K==null){K=[]}if(z&&K.reduce===z){if(I){J=D.bind(J,I)}return H?K.reduce(J,G):K.reduce(J)}d(K,function(N,L,M){if(!H){G=N;H=true}else{G=J.call(I,G,N,L,M)}});if(!H){throw new TypeError("Reduce of empty array with no initial value")}return G};D.reduceRight=D.foldr=function(J,I,G,H){if(J==null){J=[]}if(e&&J.reduceRight===e){if(H){I=D.bind(I,H)}return G!==void 0?J.reduceRight(I,G):J.reduceRight(I)}var K=(D.isArray(J)?J.slice():D.toArray(J)).reverse();return D.reduce(K,I,G,H)};D.find=D.detect=function(J,I,H){var G;q(J,function(M,K,L){if(I.call(H,M,K,L)){G=M;return true}});return G};D.filter=D.select=function(J,I,H){var G=[];if(J==null){return G}if(m&&J.filter===m){return J.filter(I,H)}d(J,function(M,K,L){if(I.call(H,M,K,L)){G[G.length]=M}});return G};D.reject=function(J,I,H){var G=[];if(J==null){return G}d(J,function(M,K,L){if(!I.call(H,M,K,L)){G[G.length]=M}});return G};D.every=D.all=function(J,I,H){var G=true;if(J==null){return G}if(a&&J.every===a){return J.every(I,H)}d(J,function(M,K,L){if(!(G=G&&I.call(H,M,K,L))){return b}});return G};var q=D.some=D.any=function(J,I,H){I=I||D.identity;var G=false;if(J==null){return G}if(y&&J.some===y){return J.some(I,H)}d(J,function(M,K,L){if(G||(G=I.call(H,M,K,L))){return b}});return !!G};D.include=D.contains=function(I,H){var G=false;if(I==null){return G}if(u&&I.indexOf===u){return I.indexOf(H)!=-1}G=q(I,function(J){return J===H});return G};D.invoke=function(H,I){var G=t.call(arguments,2);return D.map(H,function(J){return(I.call?I||J:J[I]).apply(J,G)})};D.pluck=function(H,G){return D.map(H,function(I){return I[G]})};D.max=function(J,I,H){if(!I&&D.isArray(J)){return Math.max.apply(Math,J)}if(!I&&D.isEmpty(J)){return -Infinity}var G={computed:-Infinity};d(J,function(N,K,M){var L=I?I.call(H,N,K,M):N;L>=G.computed&&(G={value:N,computed:L})});return G.value};D.min=function(J,I,H){if(!I&&D.isArray(J)){return Math.min.apply(Math,J)}if(!I&&D.isEmpty(J)){return Infinity}var G={computed:Infinity};d(J,function(N,K,M){var L=I?I.call(H,N,K,M):N;L<G.computed&&(G={value:N,computed:L})});return G.value};D.shuffle=function(I){var G=[],H;d(I,function(L,J,K){if(J==0){G[0]=L}else{H=Math.floor(Math.random()*(J+1));G[J]=G[H];G[H]=L}});return G};D.sortBy=function(I,H,G){return D.pluck(D.map(I,function(L,J,K){return{value:L,criteria:H.call(G,L,J,K)}}).sort(function(M,L){var K=M.criteria,J=L.criteria;return K<J?-1:K>J?1:0}),"value")};D.groupBy=function(I,J){var G={};var H=D.isFunction(J)?J:function(K){return K[J]};d(I,function(M,K){var L=H(M,K);(G[L]||(G[L]=[])).push(M)});return G};D.sortedIndex=function(L,K,I){I||(I=D.identity);var G=0,J=L.length;while(G<J){var H=(G+J)>>1;I(L[H])<I(K)?G=H+1:J=H}return G};D.toArray=function(G){if(!G){return[]}if(G.toArray){return G.toArray()}if(D.isArray(G)){return t.call(G)}if(D.isArguments(G)){return t.call(G)}return D.values(G)};D.size=function(G){return D.toArray(G).length};D.first=D.head=function(I,H,G){return(H!=null)&&!G?t.call(I,0,H):I[0]};D.initial=function(I,H,G){return t.call(I,0,I.length-((H==null)||G?1:H))};D.last=function(I,H,G){if((H!=null)&&!G){return t.call(I,Math.max(I.length-H,0))}else{return I[I.length-1]}};D.rest=D.tail=function(I,G,H){return t.call(I,(G==null)||H?1:G)};D.compact=function(G){return D.filter(G,function(H){return !!H})};D.flatten=function(H,G){return D.reduce(H,function(I,J){if(D.isArray(J)){return I.concat(G?J:D.flatten(J))}I[I.length]=J;return I},[])};D.without=function(G){return D.difference(G,t.call(arguments,1))};D.uniq=D.unique=function(K,J,I){var H=I?D.map(K,I):K;var G=[];D.reduce(H,function(L,N,M){if(0==M||(J===true?D.last(L)!=N:!D.include(L,N))){L[L.length]=N;G[G.length]=K[M]}return L},[]);return G};D.union=function(){return D.uniq(D.flatten(arguments,true))};D.intersection=D.intersect=function(H){var G=t.call(arguments,1);return D.filter(D.uniq(H),function(I){return D.every(G,function(J){return D.indexOf(J,I)>=0})})};D.difference=function(H,G){return D.filter(H,function(I){return !D.include(G,I)})};D.zip=function(){var G=t.call(arguments);var J=D.max(D.pluck(G,"length"));var I=new Array(J);for(var H=0;H<J;H++){I[H]=D.pluck(G,""+H)}return I};D.indexOf=function(K,I,J){if(K==null){return -1}var H,G;if(J){H=D.sortedIndex(K,I);return K[H]===I?H:-1}if(u&&K.indexOf===u){return K.indexOf(I)}for(H=0,G=K.length;H<G;H++){if(K[H]===I){return H}}return -1};D.lastIndexOf=function(I,H){if(I==null){return -1}if(f&&I.lastIndexOf===f){return I.lastIndexOf(H)}var G=I.length;while(G--){if(I[G]===H){return G}}return -1};D.range=function(L,J,K){if(arguments.length<=1){J=L||0;L=0}K=arguments[2]||1;var H=Math.max(Math.ceil((J-L)/K),0);var G=0;var I=new Array(H);while(G<H){I[G++]=L;L+=K}return I};var h=function(){};D.bind=function F(J,H){var I,G;if(J.bind===k&&k){return k.apply(J,t.call(arguments,1))}if(!D.isFunction(J)){throw new TypeError}G=t.call(arguments,2);return I=function(){if(!(this instanceof I)){return J.apply(H,G.concat(t.call(arguments)))}h.prototype=J.prototype;var L=new h;var K=J.apply(L,G.concat(t.call(arguments)));if(Object(K)===K){return K}return L}};D.bindAll=function(H){var G=t.call(arguments,1);if(G.length==0){G=D.functions(H)}d(G,function(I){H[I]=D.bind(H[I],H)});return H};D.memoize=function(I,H){var G={};H||(H=D.identity);return function(){var J=H.apply(this,arguments);return p.call(G,J)?G[J]:(G[J]=I.apply(this,arguments))}};D.delay=function(H,I){var G=t.call(arguments,2);return setTimeout(function(){return H.apply(H,G)},I)};D.defer=function(G){return D.delay.apply(D,[G,1].concat(t.call(arguments,1)))};D.throttle=function(L,N){var J,G,M,K,I;var H=D.debounce(function(){I=K=false},N);return function(){J=this;G=arguments;var O=function(){M=null;if(I){L.apply(J,G)}H()};if(!M){M=setTimeout(O,N)}if(K){I=true}else{L.apply(J,G)}H();K=true}};D.debounce=function(G,I){var H;return function(){var L=this,K=arguments;var J=function(){H=null;G.apply(L,K)};clearTimeout(H);H=setTimeout(J,I)}};D.once=function(I){var G=false,H;return function(){if(G){return H}G=true;return H=I.apply(this,arguments)}};D.wrap=function(G,H){return function(){var I=[G].concat(t.call(arguments));return H.apply(this,I)}};D.compose=function(){var G=t.call(arguments);return function(){var H=t.call(arguments);for(var I=G.length-1;I>=0;I--){H=[G[I].apply(this,H)]}return H[0]}};D.after=function(H,G){if(H<=0){return G()}return function(){if(--H<1){return G.apply(this,arguments)}}};D.keys=A||function(I){if(I!==Object(I)){throw new TypeError("Invalid object")}var H=[];for(var G in I){if(p.call(I,G)){H[H.length]=G}}return H};D.values=function(G){return D.map(G,D.identity)};D.functions=D.methods=function(I){var H=[];for(var G in I){if(D.isFunction(I[G])){H.push(G)}}return H.sort()};D.extend=function(G){d(t.call(arguments,1),function(H){for(var I in H){if(H[I]!==void 0){G[I]=H[I]}}});return G};D.defaults=function(G){d(t.call(arguments,1),function(H){for(var I in H){if(G[I]==null){G[I]=H[I]}}});return G};D.clone=function(G){if(!D.isObject(G)){return G}return D.isArray(G)?G.slice():D.extend({},G)};D.tap=function(H,G){G(H);return H};function C(J,I,H){if(J===I){return J!==0||1/J==1/I}if(J==null||I==null){return J===I}if(J._chain){J=J._wrapped}if(I._chain){I=I._wrapped}if(D.isFunction(J.isEqual)){return J.isEqual(I)}if(D.isFunction(I.isEqual)){return I.isEqual(J)}var M=w.call(J);if(M!=w.call(I)){return false}switch(M){case"[object String]":return String(J)==String(I);case"[object Number]":J=+J;I=+I;return J!=J?I!=I:(J==0?1/J==1/I:J==I);case"[object Date]":case"[object Boolean]":return +J==+I;case"[object RegExp]":return J.source==I.source&&J.global==I.global&&J.multiline==I.multiline&&J.ignoreCase==I.ignoreCase}if(typeof J!="object"||typeof I!="object"){return false}var N=H.length;while(N--){if(H[N]==J){return true}}H.push(J);var L=0,G=true;if(M=="[object Array]"){L=J.length;G=L==I.length;if(G){while(L--){if(!(G=L in J==L in I&&C(J[L],I[L],H))){break}}}}else{if("constructor" in J!="constructor" in I||J.constructor!=I.constructor){return false}for(var K in J){if(p.call(J,K)){L++;if(!(G=p.call(I,K)&&C(J[K],I[K],H))){break}}}if(G){for(K in I){if(p.call(I,K)&&!(L--)){break}}G=!L}}H.pop();return G}D.isEqual=function(H,G){return C(H,G,[])};D.isEmpty=function(H){if(D.isArray(H)||D.isString(H)){return H.length===0}for(var G in H){if(p.call(H,G)){return false}}return true};D.isElement=function(G){return !!(G&&G.nodeType==1)};D.isArray=c||function(G){return w.call(G)=="[object Array]"};D.isObject=function(G){return G===Object(G)};if(w.call(arguments)=="[object Arguments]"){D.isArguments=function(G){return w.call(G)=="[object Arguments]"}}else{D.isArguments=function(G){return !!(G&&p.call(G,"callee"))}}D.isFunction=function(G){return w.call(G)=="[object Function]"};D.isString=function(G){return w.call(G)=="[object String]"};D.isNumber=function(G){return w.call(G)=="[object Number]"};D.isNaN=function(G){return G!==G};D.isBoolean=function(G){return G===true||G===false||w.call(G)=="[object Boolean]"};D.isDate=function(G){return w.call(G)=="[object Date]"};D.isRegExp=function(G){return w.call(G)=="[object RegExp]"};D.isNull=function(G){return G===null};D.isUndefined=function(G){return G===void 0};D.noConflict=function(){v._=s;return this};D.identity=function(G){return G};D.times=function(J,I,H){for(var G=0;G<J;G++){I.call(H,G)}};D.escape=function(G){return(""+G).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")};D.mixin=function(G){d(D.functions(G),function(H){r(H,D[H]=G[H])})};var l=0;D.uniqueId=function(G){var H=l++;return G?G+H:H};D.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};D.template=function(J,I){var K=D.templateSettings;var G="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+J.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(K.escape,function(L,M){return"',_.escape("+M.replace(/\\'/g,"'")+"),'"}).replace(K.interpolate,function(L,M){return"',"+M.replace(/\\'/g,"'")+",'"}).replace(K.evaluate||null,function(L,M){return"');"+M.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+";__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";var H=new Function("obj","_",G);return I?H(I,D):function(L){return H(L,D)}};var g=function(G){this._wrapped=G};D.prototype=g.prototype;var o=function(H,G){return G?D(H).chain():H};var r=function(G,H){g.prototype[G]=function(){var I=t.call(arguments);x.call(I,this._wrapped);return o(H.apply(D,I),this._chain)}};D.mixin(D);d(["pop","push","reverse","shift","sort","splice","unshift"],function(G){var H=j[G];g.prototype[G]=function(){H.apply(this._wrapped,arguments);return o(this._wrapped,this._chain)}});d(["concat","join","slice"],function(G){var H=j[G];g.prototype[G]=function(){return o(H.apply(this._wrapped,arguments),this._chain)}});g.prototype.chain=function(){this._chain=true;return this};g.prototype.value=function(){return this._wrapped}}).call(this);(function(){var o=this;var n=o.Backbone;var b;if(typeof exports!=="undefined"){b=exports}else{b=o.Backbone={}}b.VERSION="0.5.3";var w=o._;if(!w&&(typeof require!=="undefined")){w=require("underscore")._}var e=o.jQuery||o.Zepto;b.noConflict=function(){o.Backbone=n;return this};b.emulateHTTP=false;b.emulateJSON=false;b.Events={bind:function(z,B,y){var x=this._callbacks||(this._callbacks={});var A=x[z]||(x[z]=[]);A.push([B,y]);return this},unbind:function(A,C){var z;if(!A){this._callbacks={}}else{if(z=this._callbacks){if(!C){z[A]=[]}else{var B=z[A];if(!B){return this}for(var y=0,x=B.length;y<x;y++){if(B[y]&&C===B[y][0]){B[y]=null;break}}}}}return this},trigger:function(z){var A,F,D,E,B;var C=2;if(!(F=this._callbacks)){return this}while(C--){D=C?z:"all";if(A=F[D]){for(var y=0,x=A.length;y<x;y++){if(!(E=A[y])){A.splice(y,1);y--;x--}else{B=C?Array.prototype.slice.call(arguments,1):arguments;E[0].apply(E[1]||this,B)}}}}return this}};b.Model=function(x,y){var z;x||(x={});if(z=this.defaults){if(w.isFunction(z)){z=z.call(this)}x=w.extend({},z,x)}this.attributes={};this._escapedAttributes={};this.cid=w.uniqueId("c");this.set(x,{silent:true});this._changed=false;this._previousAttributes=w.clone(this.attributes);if(y&&y.collection){this.collection=y.collection}this.initialize(x,y)};w.extend(b.Model.prototype,b.Events,{_previousAttributes:null,_changed:false,idAttribute:"id",initialize:function(){},toJSON:function(){return w.clone(this.attributes)},get:function(x){return this.attributes[x]},escape:function(x){var y;if(y=this._escapedAttributes[x]){return y}var z=this.attributes[x];return this._escapedAttributes[x]=m(z==null?"":""+z)},has:function(x){return this.attributes[x]!=null},set:function(A,z){z||(z={});if(!A){return this}if(A.attributes){A=A.attributes}var y=this.attributes,C=this._escapedAttributes;if(!z.silent&&this.validate&&!this._performValidation(A,z)){return false}if(this.idAttribute in A){this.id=A[this.idAttribute]}var B=this._changing;this._changing=true;for(var x in A){var D=A[x];if(!w.isEqual(y[x],D)){y[x]=D;delete C[x];this._changed=true;if(!z.silent){this.trigger("change:"+x,this,D,z)}}}if(!B&&!z.silent&&this._changed){this.change(z)}this._changing=false;return this},unset:function(x,y){if(!(x in this.attributes)){return this}y||(y={});var A=this.attributes[x];var z={};z[x]=void 0;if(!y.silent&&this.validate&&!this._performValidation(z,y)){return false}delete this.attributes[x];delete this._escapedAttributes[x];if(x==this.idAttribute){delete this.id}this._changed=true;if(!y.silent){this.trigger("change:"+x,this,void 0,y);this.change(y)}return this},clear:function(z){z||(z={});var x;var y=this.attributes;var A={};for(x in y){A[x]=void 0}if(!z.silent&&this.validate&&!this._performValidation(A,z)){return false}this.attributes={};this._escapedAttributes={};this._changed=true;if(!z.silent){for(x in y){this.trigger("change:"+x,this,void 0,z)}this.change(z)}return this},fetch:function(y){y||(y={});var x=this;var z=y.success;y.success=function(C,A,B){if(!x.set(x.parse(C,B),y)){return false}if(z){z(x,C)}};y.error=c(y.error,x,y);return(this.sync||b.sync).call(this,"read",this,y)},save:function(z,y){y||(y={});if(z&&!this.set(z,y)){return false}var x=this;var A=y.success;y.success=function(E,C,D){if(!x.set(x.parse(E,D),y)){return false}if(A){A(x,E,D)}};y.error=c(y.error,x,y);var B=this.isNew()?"create":"update";return(this.sync||b.sync).call(this,B,this,y)},destroy:function(y){y||(y={});if(this.isNew()){return this.trigger("destroy",this,this.collection,y)}var x=this;var z=y.success;y.success=function(A){x.trigger("destroy",x,x.collection,y);if(z){z(x,A)}};y.error=c(y.error,x,y);return(this.sync||b.sync).call(this,"delete",this,y)},url:function(){var x=p(this.collection)||this.urlRoot||r();if(this.isNew()){return x}return x+(x.charAt(x.length-1)=="/"?"":"/")+encodeURIComponent(this.id)},parse:function(y,x){return y},clone:function(){return new this.constructor(this)},isNew:function(){return this.id==null},change:function(x){this.trigger("change",this,x);this._previousAttributes=w.clone(this.attributes);this._changed=false},hasChanged:function(x){if(x){return this._previousAttributes[x]!=this.attributes[x]}return this._changed},changedAttributes:function(z){z||(z=this.attributes);var y=this._previousAttributes;var A=false;for(var x in z){if(!w.isEqual(y[x],z[x])){A=A||{};A[x]=z[x]}}return A},previous:function(x){if(!x||!this._previousAttributes){return null}return this._previousAttributes[x]},previousAttributes:function(){return w.clone(this._previousAttributes)},_performValidation:function(z,y){var x=this.validate(z);if(x){if(y.error){y.error(this,x,y)}else{this.trigger("error",this,x,y)}return false}return true}});b.Collection=function(y,x){x||(x={});if(x.comparator){this.comparator=x.comparator}w.bindAll(this,"_onModelEvent","_removeReference");this._reset();if(y){this.reset(y,{silent:true})}this.initialize.apply(this,arguments)};w.extend(b.Collection.prototype,b.Events,{model:b.Model,initialize:function(){},toJSON:function(){return this.map(function(x){return x.toJSON()})},add:function(A,y){if(w.isArray(A)){for(var z=0,x=A.length;z<x;z++){this._add(A[z],y)}}else{this._add(A,y)}return this},remove:function(A,y){if(w.isArray(A)){for(var z=0,x=A.length;z<x;z++){this._remove(A[z],y)}}else{this._remove(A,y)}return this},get:function(x){if(x==null){return null}return this._byId[x.id!=null?x.id:x]},getByCid:function(x){return x&&this._byCid[x.cid||x]},at:function(x){return this.models[x]},sort:function(x){x||(x={});if(!this.comparator){throw new Error("Cannot sort a set without a comparator")}this.models=this.sortBy(this.comparator);if(!x.silent){this.trigger("reset",this,x)}return this},pluck:function(x){return w.map(this.models,function(y){return y.get(x)})},reset:function(y,x){y||(y=[]);x||(x={});this.each(this._removeReference);this._reset();this.add(y,{silent:true});if(!x.silent){this.trigger("reset",this,x)}return this},fetch:function(x){x||(x={});var z=this;var y=x.success;x.success=function(C,A,B){z[x.add?"add":"reset"](z.parse(C,B),x);if(y){y(z,C)}};x.error=c(x.error,z,x);return(this.sync||b.sync).call(this,"read",this,x)},create:function(y,x){var z=this;x||(x={});y=this._prepareModel(y,x);if(!y){return false}var A=x.success;x.success=function(B,D,C){z.add(B,x);if(A){A(B,D,C)}};y.save(null,x);return y},parse:function(y,x){return y},chain:function(){return w(this.models).chain()},_reset:function(x){this.length=0;this.models=[];this._byId={};this._byCid={}},_prepareModel:function(z,y){if(!(z instanceof b.Model)){var x=z;z=new this.model(x,{collection:this});if(z.validate&&!z._performValidation(x,y)){z=false}}else{if(!z.collection){z.collection=this}}return z},_add:function(z,y){y||(y={});z=this._prepareModel(z,y);if(!z){return false}var A=this.getByCid(z);if(A){throw new Error(["Can't add the same model to a set twice",A.id])}this._byId[z.id]=z;this._byCid[z.cid]=z;var x=y.at!=null?y.at:this.comparator?this.sortedIndex(z,this.comparator):this.length;this.models.splice(x,0,z);z.bind("all",this._onModelEvent);this.length++;if(!y.silent){z.trigger("add",z,this,y)}return z},_remove:function(y,x){x||(x={});y=this.getByCid(y)||this.get(y);if(!y){return null}delete this._byId[y.id];delete this._byCid[y.cid];this.models.splice(this.indexOf(y),1);this.length--;if(!x.silent){y.trigger("remove",y,this,x)}this._removeReference(y);return y},_removeReference:function(x){if(this==x.collection){delete x.collection}x.unbind("all",this._onModelEvent)},_onModelEvent:function(z,y,A,x){if((z=="add"||z=="remove")&&A!=this){return}if(z=="destroy"){this._remove(y,x)}if(y&&z==="change:"+y.idAttribute){delete this._byId[y.previous(y.idAttribute)];this._byId[y.id]=y}this.trigger.apply(this,arguments)}});var u=["forEach","each","map","reduce","reduceRight","find","detect","filter","select","reject","every","all","some","any","include","contains","invoke","max","min","sortBy","sortedIndex","toArray","size","first","rest","last","without","indexOf","lastIndexOf","isEmpty","groupBy"];w.each(u,function(x){b.Collection.prototype[x]=function(){return w[x].apply(w,[this.models].concat(w.toArray(arguments)))}});b.Router=function(x){x||(x={});if(x.routes){this.routes=x.routes}this._bindRoutes();this.initialize.apply(this,arguments)};var g=/:([\w\d]+)/g;var v=/\*([\w\d]+)/g;var d=/[-[\]{}()+?.,\\^$|#\s]/g;w.extend(b.Router.prototype,b.Events,{initialize:function(){},route:function(x,y,z){b.history||(b.history=new b.History);if(!w.isRegExp(x)){x=this._routeToRegExp(x)}b.history.route(x,w.bind(function(B){var A=this._extractParameters(x,B);z.apply(this,A);this.trigger.apply(this,["route:"+y].concat(A))},this))},navigate:function(x,y){b.history.navigate(x,y)},_bindRoutes:function(){if(!this.routes){return}var y=[];for(var z in this.routes){y.unshift([z,this.routes[z]])}for(var A=0,x=y.length;A<x;A++){this.route(y[A][0],y[A][1],this[y[A][1]])}},_routeToRegExp:function(x){x=x.replace(d,"\\$&").replace(g,"([^/]*)").replace(v,"(.*?)");return new RegExp("^"+x+"$")},_extractParameters:function(x,y){return x.exec(y).slice(1)}});b.History=function(){this.handlers=[];w.bindAll(this,"checkUrl")};var l=/^#*/;var h=/msie [\w.]+/;var j=false;w.extend(b.History.prototype,{interval:50,getFragment:function(y,x){if(y==null){if(this._hasPushState||x){y=window.location.pathname;var z=window.location.search;if(z){y+=z}if(y.indexOf(this.options.root)==0){y=y.substr(this.options.root.length)}}else{y=window.location.hash}}return decodeURIComponent(y.replace(l,""))},start:function(z){if(j){throw new Error("Backbone.history has already been started")}this.options=w.extend({},{root:"/"},this.options,z);this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&window.history&&window.history.pushState);var y=this.getFragment();var x=document.documentMode;var B=(h.exec(navigator.userAgent.toLowerCase())&&(!x||x<=7));if(B){this.iframe=e('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow;this.navigate(y)}if(this._hasPushState){e(window).bind("popstate",this.checkUrl)}else{if("onhashchange" in window&&!B){e(window).bind("hashchange",this.checkUrl)}else{setInterval(this.checkUrl,this.interval)}}this.fragment=y;j=true;var C=window.location;var A=C.pathname==this.options.root;if(this._wantsPushState&&!this._hasPushState&&!A){this.fragment=this.getFragment(null,true);window.location.replace(this.options.root+"#"+this.fragment);return true}else{if(this._wantsPushState&&this._hasPushState&&A&&C.hash){this.fragment=C.hash.replace(l,"");window.history.replaceState({},document.title,C.protocol+"//"+C.host+this.options.root+this.fragment)}}if(!this.options.silent){return this.loadUrl()}},route:function(x,y){this.handlers.unshift({route:x,callback:y})},checkUrl:function(y){var x=this.getFragment();if(x==this.fragment&&this.iframe){x=this.getFragment(this.iframe.location.hash)}if(x==this.fragment||x==decodeURIComponent(this.fragment)){return false}if(this.iframe){this.navigate(x)}this.loadUrl()||this.loadUrl(window.location.hash)},loadUrl:function(z){var y=this.fragment=this.getFragment(z);var x=w.any(this.handlers,function(A){if(A.route.test(y)){A.callback(y);return true}});return x},navigate:function(x,y){var A=(x||"").replace(l,"");if(this.fragment==A||this.fragment==decodeURIComponent(A)){return}if(this._hasPushState){var z=window.location;if(A.indexOf(this.options.root)!=0){A=this.options.root+A}this.fragment=A;window.history.pushState({},document.title,z.protocol+"//"+z.host+A)}else{window.location.hash=this.fragment=A;if(this.iframe&&(A!=this.getFragment(this.iframe.location.hash))){this.iframe.document.open().close();this.iframe.location.hash=A}}if(y){this.loadUrl(x)}}});b.View=function(x){this.cid=w.uniqueId("view");this._configure(x||{});this._ensureElement();this.delegateEvents();this.initialize.apply(this,arguments)};var k=function(x){return e(x,this.el)};var a=/^(\S+)\s*(.*)$/;var s=["model","collection","el","id","attributes","className","tagName"];w.extend(b.View.prototype,b.Events,{tagName:"div",$:k,initialize:function(){},render:function(){return this},remove:function(){e(this.el).remove();return this},make:function(y,x,A){var z=document.createElement(y);if(x){e(z).attr(x)}if(A){e(z).html(A)}return z},delegateEvents:function(B){if(!(B||(B=this.events))){return}if(w.isFunction(B)){B=B.call(this)}e(this.el).unbind(".delegateEvents"+this.cid);for(var A in B){var C=this[B[A]];if(!C){throw new Error('Event "'+B[A]+'" does not exist')}var z=A.match(a);var y=z[1],x=z[2];C=w.bind(C,this);y+=".delegateEvents"+this.cid;if(x===""){e(this.el).bind(y,C)}else{e(this.el).delegate(x,y,C)}}},_configure:function(z){if(this.options){z=w.extend({},this.options,z)}for(var A=0,y=s.length;A<y;A++){var x=s[A];if(z[x]){this[x]=z[x]}}this.options=z},_ensureElement:function(){if(!this.el){var x=this.attributes||{};if(this.id){x.id=this.id}if(this.className){x["class"]=this.className}this.el=this.make(this.tagName,x)}else{if(w.isString(this.el)){this.el=e(this.el).get(0)}}}});var t=function(x,y){var z=i(this,x,y);z.extend=this.extend;return z};b.Model.extend=b.Collection.extend=b.Router.extend=b.View.extend=t;var q={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};b.sync=function(B,y,x){var z=q[B];var A=w.extend({type:z,dataType:"json"},x);if(!A.url){A.url=p(y)||r()}if(!A.data&&y&&(B=="create"||B=="update")){A.contentType="application/json";A.data=JSON.stringify(y.toJSON())}if(b.emulateJSON){A.contentType="application/x-www-form-urlencoded";A.data=A.data?{model:A.data}:{}}if(b.emulateHTTP){if(z==="PUT"||z==="DELETE"){if(b.emulateJSON){A.data._method=z}A.type="POST";A.beforeSend=function(C){C.setRequestHeader("X-HTTP-Method-Override",z)}}}if(A.type!=="GET"&&!b.emulateJSON){A.processData=false}return e.ajax(A)};var f=function(){};var i=function(y,x,z){var A;if(x&&x.hasOwnProperty("constructor")){A=x.constructor}else{A=function(){return y.apply(this,arguments)}}w.extend(A,y);f.prototype=y.prototype;A.prototype=new f();if(x){w.extend(A.prototype,x)}if(z){w.extend(A,z)}A.prototype.constructor=A;A.__super__=y.prototype;return A};var p=function(x){if(!(x&&x.url)){return null}return w.isFunction(x.url)?x.url():x.url};var r=function(){throw new Error('A "url" property or function must be specified')};var c=function(z,y,x){return function(A){if(z){z(y,A,x)}else{y.trigger("error",y,A,x)}}};var m=function(x){return x.replace(/&(?!\w+;|#\d+;|#x[\da-f]+;)/gi,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'").replace(/\//g,"/")}}).call(this);(function(a){window.Filter=Backbone.Model.extend({defaults:{filter:{}},initialize:function(){this.bind("change:data",function(){this.run()});this.bind("change:filter",function(){this.run()})},add:function(b){newFilter=this.get("filter");newFilter[b.field]={min:b.min,max:b.max};this.set({filter:newFilter});this.trigger("change:filter")},remove:function(b){newFilter=this.get("filter");delete newFilter[b];this.set({filter:newFilter});this.trigger("change:filter")},run:function(){var b=this;var c=_(b.get("data")).filter(function(f,e){return b.check(f)});this.set({filtered:c})},outliers:function(){var b=this;var c=_(b.get("data")).reject(function(f,e){return b.check(f)});if(_(c).size()===0){if(!confirm("This will remove all the data. Are you sure about this?")){return false}}b.set({data:c});b.clearFilter()},inliers:function(){var b=this;var c=_(b.get("data")).filter(function(f,e){return b.check(f)});if(_(c).size()===0){if(!confirm("This will remove all the data. Are you sure about this?")){return false}}b.set({data:c});b.clearFilter()},clearFilter:function(){this.set({filter:{}});this.trigger("change:filter")},check:function(c){var b=this.get("filter");for(key in this.get("filter")){if((c[key]<b[key].min)||(c[key]>b[key].max)){return false}}return true}});window.Selector=Backbone.Model.extend({defaults:{selected:null},select:function(b){this.set({selected:b})},deselect:function(){this.unset("selected")}})})(); /*! * jquery.event.drag - v 2.0.0 * Copyright (c) 2010 Three Dub Media - http://threedubmedia.com * Open Source MIT License - http://threedubmedia.com/code/license */ (function(d){d.fn.drag=function(c,f,i){var h=typeof c=="string"?c:"",g=d.isFunction(c)?c:d.isFunction(f)?f:null;if(h.indexOf("drag")!==0){h="drag"+h}i=(c==g?f:i)||{};return g?this.bind(h,i,g):this.trigger(h)};var a=d.event,b=a.special,e=b.drag={defaults:{which:1,distance:0,not:":input",handle:null,relative:false,drop:true,click:false},datakey:"dragdata",livekey:"livedrag",add:function(c){var f=d.data(this,e.datakey),g=c.data||{};f.related+=1;if(!f.live&&c.selector){f.live=true;a.add(this,"draginit."+e.livekey,e.delegate)}d.each(e.defaults,function(h){if(g[h]!==undefined){f[h]=g[h]}})},remove:function(){d.data(this,e.datakey).related-=1},setup:function(){if(!d.data(this,e.datakey)){var c=d.extend({related:0},e.defaults);d.data(this,e.datakey,c);a.add(this,"mousedown",e.init,c);this.attachEvent&&this.attachEvent("ondragstart",e.dontstart)}},teardown:function(){if(!d.data(this,e.datakey).related){d.removeData(this,e.datakey);a.remove(this,"mousedown",e.init);a.remove(this,"draginit",e.delegate);e.textselect(true);this.detachEvent&&this.detachEvent("ondragstart",e.dontstart)}},init:function(c){var f=c.data,g;if(!(f.which>0&&c.which!=f.which)){if(!d(c.target).is(f.not)){if(!(f.handle&&!d(c.target).closest(f.handle,c.currentTarget).length)){f.propagates=1;f.interactions=[e.interaction(this,f)];f.target=c.target;f.pageX=c.pageX;f.pageY=c.pageY;f.dragging=null;g=e.hijack(c,"draginit",f);if(f.propagates){if((g=e.flatten(g))&&g.length){f.interactions=[];d.each(g,function(){f.interactions.push(e.interaction(this,f))})}f.propagates=f.interactions.length;f.drop!==false&&b.drop&&b.drop.handler(c,f);e.textselect(false);a.add(document,"mousemove mouseup",e.handler,f);return false}}}}},interaction:function(c,f){return{drag:c,callback:new e.callback,droppable:[],offset:d(c)[f.relative?"position":"offset"]()||{top:0,left:0}}},handler:function(c){var f=c.data;switch(c.type){case !f.dragging&&"mousemove":if(Math.pow(c.pageX-f.pageX,2)+Math.pow(c.pageY-f.pageY,2)<Math.pow(f.distance,2)){break}c.target=f.target;e.hijack(c,"dragstart",f);if(f.propagates){f.dragging=true}case"mousemove":if(f.dragging){e.hijack(c,"drag",f);if(f.propagates){f.drop!==false&&b.drop&&b.drop.handler(c,f);break}c.type="mouseup"}case"mouseup":a.remove(document,"mousemove mouseup",e.handler);if(f.dragging){f.drop!==false&&b.drop&&b.drop.handler(c,f);e.hijack(c,"dragend",f)}e.textselect(true);if(f.click===false&&f.dragging){jQuery.event.triggered=true;setTimeout(function(){jQuery.event.triggered=false},20);f.dragging=false}break}},delegate:function(c){var f=[],h,g=d.data(this,"events")||{};d.each(g.live||[],function(i,l){if(l.preType.indexOf("drag")===0){if(h=d(c.target).closest(l.selector,c.currentTarget)[0]){a.add(h,l.origType+"."+e.livekey,l.origHandler,l.data);d.inArray(h,f)<0&&f.push(h)}}});if(!f.length){return false}return d(f).bind("dragend."+e.livekey,function(){a.remove(this,"."+e.livekey)})},hijack:function(u,v,t,s,p){if(t){var q={event:u.originalEvent,type:u.type},f=v.indexOf("drop")?"drag":"drop",i,c=s||0,r,h;s=!isNaN(s)?s:t.interactions.length;u.type=v;u.originalEvent=null;t.results=[];do{if(r=t.interactions[c]){if(!(v!=="dragend"&&r.cancelled)){h=e.properties(u,t,r);r.results=[];d(p||r[f]||t.droppable).each(function(g,j){i=(h.target=j)?a.handle.call(j,u,h):null;if(i===false){if(f=="drag"){r.cancelled=true;t.propagates-=1}if(v=="drop"){r[f][g]=null}}else{if(v=="dropinit"){r.droppable.push(e.element(i)||j)}}if(v=="dragstart"){r.proxy=d(e.element(i)||r.drag)[0]}r.results.push(i);delete u.result;if(v!=="dropinit"){return i}});t.results[c]=e.flatten(r.results);if(v=="dropinit"){r.droppable=e.flatten(r.droppable)}v=="dragstart"&&!r.cancelled&&h.update()}}}while(++c<s);u.type=q.type;u.originalEvent=q.event;return e.flatten(t.results)}},properties:function(c,f,h){var g=h.callback;g.drag=h.drag;g.proxy=h.proxy||h.drag;g.startX=f.pageX;g.startY=f.pageY;g.deltaX=c.pageX-f.pageX;g.deltaY=c.pageY-f.pageY;g.originalX=h.offset.left;g.originalY=h.offset.top;g.offsetX=c.pageX-(f.pageX-g.originalX);g.offsetY=c.pageY-(f.pageY-g.originalY);g.drop=e.flatten((h.drop||[]).slice());g.available=e.flatten((h.droppable||[]).slice());return g},element:function(c){if(c&&(c.jquery||c.nodeType==1)){return c}},flatten:function(c){return d.map(c,function(f){return f&&f.jquery?d.makeArray(f):f&&f.length?e.flatten(f):f})},textselect:function(c){d(document)[c?"unbind":"bind"]("selectstart",e.dontstart).attr("unselectable",c?"off":"on").css("MozUserSelect",c?"":"none")},dontstart:function(){return false},callback:function(){}};e.callback.prototype={update:function(){b.drop&&this.available.length&&d.each(this.available,function(c){b.drop.locate(this,c)})}};b.draginit=b.dragstart=b.dragend=e})(jQuery);(function(g){g.extend(true,window,{Slick:{Event:b,EventData:e,Range:h,NonDataRow:d,Group:c,GroupTotals:a,EditorLock:f,GlobalEditorLock:new f()}});function e(){var i=false;var j=false;this.stopPropagation=function(){i=true};this.isPropagationStopped=function(){return i};this.stopImmediatePropagation=function(){j=true};this.isImmediatePropagationStopped=function(){return j}}function b(){var i=[];this.subscribe=function(j){i.push(j)};this.unsubscribe=function(k){for(var j=i.length-1;j>=0;j--){if(i[j]===k){i.splice(j,1)}}};this.notify=function(j,n,m){n=n||new e();m=m||this;var l;for(var k=0;k<i.length&&!(n.isPropagationStopped()||n.isImmediatePropagationStopped());k++){l=i[k].call(m,n,j)}return l}}function h(j,i,k,l){if(k===undefined&&l===undefined){k=j;l=i}this.fromRow=Math.min(j,k);this.fromCell=Math.min(i,l);this.toRow=Math.max(j,k);this.toCell=Math.max(i,l);this.isSingleRow=function(){return this.fromRow==this.toRow};this.isSingleCell=function(){return this.fromRow==this.toRow&&this.fromCell==this.toCell};this.contains=function(n,m){return n>=this.fromRow&&n<=this.toRow&&m>=this.fromCell&&m<=this.toCell};this.toString=function(){if(this.isSingleCell()){return"("+this.fromRow+":"+this.fromCell+")"}else{return"("+this.fromRow+":"+this.fromCell+" - "+this.toRow+":"+this.toCell+")"}}}function d(){this.__nonDataRow=true}function c(){this.__group=true;this.__updated=false;this.count=0;this.value=null;this.title=null;this.collapsed=false;this.totals=null}c.prototype=new d();c.prototype.equals=function(i){return this.value===i.value&&this.count===i.count&&this.collapsed===i.collapsed};function a(){this.__groupTotals=true;this.group=null}a.prototype=new d();function f(){var i=null;this.isActive=function(k){return(k?i===k:i!==null)};this.activate=function(k){if(k===i){return}if(i!==null){throw"SlickGrid.EditorLock.activate: an editController is still active, can't activate another editController"}if(!k.commitCurrentEdit){throw"SlickGrid.EditorLock.activate: editController must implement .commitCurrentEdit()"}if(!k.cancelCurrentEdit){throw"SlickGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()"}i=k};this.deactivate=function(k){if(i!==k){throw"SlickGrid.EditorLock.deactivate: specified editController is not the currently active one"}i=null};this.commitCurrentEdit=function(){return(i?i.commitCurrentEdit():true)};this.cancelCurrentEdit=function j(){return(i?i.cancelCurrentEdit():true)}}})(jQuery);(function(d){d.extend(true,window,{Slick:{Data:{DataView:e,Aggregators:{Avg:c,Min:b,Max:a}}}});function e(I){var o=this;var R={groupItemMetadataProvider:null};var Y="id";var C=[];var ah=[];var r={};var B=null;var S=null;var j=null;var K=false;var ak=true;var p;var k;var ac;var s;var f;var n;var q=[];var af={};var aa;var H=false;var X=0;var L=0;var W=0;var i=new Slick.Event();var l=new Slick.Event();var h=new Slick.Event();I=d.extend(true,{},R,I);function t(){K=true}function ar(at){K=false;an(at)}function V(av){av=av||0;var aw;for(var au=av,at=C.length;au<at;au++){aw=C[au][Y];if(aw===undefined){throw"Each data element must implement a unique 'id' property"}r[aw]=au}}function F(){var av;for(var au=0,at=C.length;au<at;au++){av=C[au][Y];if(av===undefined||r[av]!==au){throw"Each data element must implement a unique 'id' property"}}}function z(){return C}function v(au,at){if(at!==undefined){Y=at}C=au;r={};V();F();an()}function y(at){if(at.pageSize!=undefined){X=at.pageSize}if(at.pageNum!=undefined){L=Math.min(at.pageNum,Math.ceil(W/X))}h.notify(ag(),null,o);an()}function ag(){return{pageSize:X,pageNum:L,totalRows:W}}function al(au,at){ak=at;k=au;p=null;if(at===false){C.reverse()}C.sort(au);if(at===false){C.reverse()}r={};V();an()}function P(av,au){ak=au;p=av;k=null;var at=Object.prototype.toString;Object.prototype.toString=(typeof av=="function")?av:function(){return this[av]};if(au===false){C.reverse()}C.sort();Object.prototype.toString=at;if(au===false){C.reverse()}r={};V();an()}function aq(){if(k){al(k,ak)}else{if(p){P(p,ak)}}}function x(at){S=at;an()}function ap(at,au,av){if(!I.groupItemMetadataProvider){I.groupItemMetadataProvider=new Slick.Data.GroupItemMetadataProvider()}ac=at;s=typeof ac==="function";f=au;n=av;af={};q=[];an()}function ao(au,at){aa=au;H=at!==undefined?at:H;an()}function O(at){return C[at]}function U(at){return r[at]}function Q(av){if(!B){B={};for(var au=0,at=ah.length;au<at;++au){B[ah[au][Y]]=au}}return B[av]}function ae(at){return C[r[at]]}function Z(au,at){if(r[au]===undefined||au!==at[Y]){throw"Invalid or non-matching id"}C[r[au]]=at;if(!j){j={}}j[au]=true;an()}function E(at,au){C.splice(at,0,au);V(at);an()}function aj(at){C.push(at);V(C.length-1);an()}function m(au){var at=r[au];if(at===undefined){throw"Invalid id"}delete r[au];C.splice(at,1);V(at);an()}function am(){return ah.length}function g(at){return ah[at]}function ai(at){var au=ah[at];if(au===undefined){return null}if(au.__group){return I.groupItemMetadataProvider.getGroupRowMetadata(au)}if(au.__groupTotals){return I.groupItemMetadataProvider.getTotalsRowMetadata(au)}return null}function G(at){af[at]=true;an()}function A(at){delete af[at];an()}function ab(){return q}function ad(ay){var az;var aA;var at=[];var ax={};var aw;for(var av=0,au=ay.length;av<au;av++){aw=ay[av];aA=(s)?ac(aw):aw[ac];az=ax[aA];if(!az){az=new Slick.Group();az.count=0;az.value=aA;az.rows=[];at[at.length]=az;ax[aA]=az}az.rows[az.count++]=aw}return at}function N(ay){var ax,at;if(ay.collapsed&&!H){return}at=aa.length;while(at--){aa[at].init()}for(var au=0,aw=ay.rows.length;au<aw;au++){ax=ay.rows[au];at=aa.length;while(at--){aa[at].accumulate(ax)}}var av=new Slick.GroupTotals();at=aa.length;while(at--){aa[at].storeResult(av)}av.group=ay;ay.totals=av}function D(au){var at=au.length;while(at--){N(au[at])}}function u(au){var at=au.length,av;while(at--){av=au[at];av.collapsed=(av.value in af);av.title=f?f(av):av.value}}function M(au){var av=[],az=0,aC,aD,aB,at;for(var ay=0,aw=au.length;ay<aw;ay++){aB=au[ay];av[az++]=aB;if(!aB.collapsed){for(var ax=0,aA=aB.rows.length;ax<aA;ax++){av[az++]=aB.rows[ax]}}if(aB.totals&&(!aB.collapsed||H)){av[az++]=aB.totals}}return av}function J(az,av){var aw=X*L;var aB=aw+X;var at=0,au=0,aC;var ay=[];if(av){for(var ax=0,aA=az.length;ax<aA;++ax){aC=az[ax];if(!av||av(aC)){if(!X||(at>=aw&&at<aB)){ay[au]=aC;au++}at++}}}else{ay=X?az.slice(aw,aB):az.concat();at=az.length}return{totalRows:at,rows:ay}}function T(aB,ax){var aA,at,au,az=[];for(var av=0,ay=aB.length,aw=ax.length;av<aw;av++){if(av>=ay){az[az.length]=av}else{aA=ax[av];at=aB[av];if((ac&&(au=(aA.__nonDataRow)||(at.__nonDataRow))&&aA.__group!==at.__group||aA.__updated||aA.__group&&!aA.equals(at))||(aa&&au&&(aA.__groupTotals||at.__groupTotals))||aA[Y]!=at[Y]||(j&&j[aA[Y]])){az[az.length]=av}}}return az}function w(ax,au,ay){B=null;var at=[];var av=J(ax,ay);W=av.totalRows;at=av.rows;q=[];if(ac!=null){q=ad(at);if(q.length){u(q);if(aa){D(q)}q.sort(n);at=M(q)}}var aw=T(au,at);ah=at;return aw}function an(){if(K){return}var at=ah.length;var au=W;var av=w(C,ah,S);if(X&&W<L*X){L=Math.floor(W/X);av=w(C,ah,S)}j=null;if(au!=W){h.notify(ag(),null,o)}if(at!=ah.length){i.notify({previous:at,current:ah.length},null,o)}if(av.length>0){l.notify({rows:av},null,o)}}return{beginUpdate:t,endUpdate:ar,setPagingOptions:y,getPagingInfo:ag,getItems:z,setItems:v,setFilter:x,sort:al,fastSort:P,reSort:aq,groupBy:ap,setAggregators:ao,collapseGroup:G,expandGroup:A,getGroups:ab,getIdxById:U,getRowById:Q,getItemById:ae,getItemByIdx:O,refresh:an,updateItem:Z,insertItem:E,addItem:aj,deleteItem:m,getLength:am,getItem:g,getItemMetadata:ai,onRowCountChanged:i,onRowsChanged:l,onPagingInfoChanged:h}}function c(i){var h;var f;var g;this.init=function(){h=0;f=0;g=0};this.accumulate=function(j){var k=j[i];h++;if(k!=null&&k!=NaN){f++;g+=1*k}};this.storeResult=function(j){if(!j.avg){j.avg={}}if(f!=0){j.avg[i]=g/f}}}function b(g){var f;this.init=function(){f=null};this.accumulate=function(h){var i=h[g];if(i!=null&&i!=NaN){if(f==null||i<f){f=i}}};this.storeResult=function(h){if(!h.min){h.min={}}h.min[g]=f}}function a(g){var f;this.init=function(){f=null};this.accumulate=function(h){var i=h[g];if(i!=null&&i!=NaN){if(f==null||i>f){f=i}}};this.storeResult=function(h){if(!h.max){h.max={}}h.max[g]=f}}})(jQuery);(function(b){function a(l,c,m){var o,i;function n(){l.onPagingInfoChanged.subscribe(function(r,q){e(q)});g();e(l.getPagingInfo())}function f(){var s=!Slick.GlobalEditorLock.commitCurrentEdit();var q=l.getPagingInfo();var r=Math.floor(q.totalRows/q.pageSize);return{canGotoFirst:!s&&q.pageSize!=0&&q.pageNum>0,canGotoLast:!s&&q.pageSize!=0&&q.pageNum!=r,canGotoPrev:!s&&q.pageSize!=0&&q.pageNum>0,canGotoNext:!s&&q.pageSize!=0&&q.pageNum<r,pagingInfo:q,lastPage:r}}function d(q){l.setPagingOptions({pageSize:q})}function k(){if(f().canGotoFirst){l.setPagingOptions({pageNum:0})}}function p(){var q=f();if(q.canGotoLast){l.setPagingOptions({pageNum:q.lastPage})}}function h(){var q=f();if(q.canGotoPrev){l.setPagingOptions({pageNum:q.pagingInfo.pageNum-1})}}function j(){var q=f();if(q.canGotoNext){l.setPagingOptions({pageNum:q.pagingInfo.pageNum+1})}}function g(){m.empty();var q=b("<span class='slick-pager-nav' />").appendTo(m);var r=b("<span class='slick-pager-settings' />").appendTo(m);o=b("<span class='slick-pager-status' />").appendTo(m);r.append("<span class='slick-pager-settings-expanded' style='display:none'>Show: <a data=0>All</a><a data='-1'>Auto</a><a data=25>25</a><a data=50>50</a><a data=100>100</a></span>");r.find("a[data]").click(function(w){var v=b(w.target).attr("data");if(v!=undefined){if(v==-1){var u=c.getViewport();d(u.bottom-u.top)}else{d(parseInt(v))}}});var s="<span class='ui-state-default ui-corner-all ui-icon-container'><span class='ui1-icon ";var t="' /></span>";b(s+"ui-icon-lightbulb"+t).click(function(){b(".slick-pager-settings-expanded").toggle()}).appendTo(r);b(s+"ui1-icon-seek-first"+t).click(k).appendTo(q);b(s+"ui1-icon-seek-prev"+t).click(h).appendTo(q);b(s+"ui1-icon-seek-next"+t).click(j).appendTo(q);b(s+"ui1-icon-seek-end"+t).click(p).appendTo(q);m.find(".ui-icon-container").hover(function(){b(this).toggleClass("ui-state-hover")});m.children().wrapAll("<div class='slick-pager' />")}function e(q){var r=f();m.find(".slick-pager-nav span").removeClass("ui-state-disabled");if(!r.canGotoFirst){m.find(".ui1-icon-seek-first").addClass("ui-state-disabled")}if(!r.canGotoLast){m.find(".ui1-icon-seek-end").addClass("ui-state-disabled")}if(!r.canGotoNext){m.find(".ui1-icon-seek-next").addClass("ui-state-disabled")}if(!r.canGotoPrev){m.find(".ui1-icon-seek-prev").addClass("ui-state-disabled")}if(q.pageSize==0){o.text("Selected "+q.totalRows+" rows")}else{o.text("Showing page "+(q.pageNum+1)+" of "+(Math.floor(q.totalRows/q.pageSize)+1))}}n()}b.extend(true,window,{Slick:{Controls:{Pager:a}}})})(jQuery);(function(a){window.grid=Backbone.View.extend({initialize:function(f){var e=this;for(var d in f){this[d]=f[d]}this.model.bind("change:filtered",function(){e.update()});var b=(this.width>10?Math.round((this.width-30)/this.columns.length):0);var g=0;this.cols=_(this.columns).map(function(i){return{id:i,name:function(){if(e.alias){return e.alias[i]}else{return i}}(),field:i,width:b,formatter:kpiFormatter,headerCssClass:(e.format[g]==""?"":"alignRight"),cssClass:(e.format[g]==""?"":"alignRight"),format:e.format[g++]}});this.options={enableCellNavigation:true,enableColumnReorder:true};this.dataView=new Slick.Data.DataView();this.selectedRowIds=[];this.grid=new Slick.Grid("#myGrid",this.dataView,this.cols,this.options);this.counter=0;var c=new Slick.Controls.Pager(this.dataView,this.grid,$("#pager"));this.dataView.onRowCountChanged.subscribe(function(j,i){e.grid.updateRowCount();e.grid.render()});this.dataView.onRowsChanged.subscribe(function(n,k){e.grid.invalidateRows(k.rows);e.grid.render();if(e.selectedRowIds.length>0){var m=[];for(var l=0;l<e.selectedRowIds.length;l++){var j=e.dataView.getRowById(e.selectedRowIds[l]);if(j!=a){m.push(j)}}e.grid.setSelectedRows(m)}});this.dataView.onPagingInfoChanged.subscribe(function(m,l){var k=l.pageSize*(l.pageNum+1)-1>=l.totalRows;var j=false;var i=e.grid.getOptions();if(i.enableAddRow!=j){e.grid.setOptions({enableAddRow:j})}});this.grid.onColumnsReordered.subscribe(function(k,i){var j=_(this.getColumns()).pluck("id");e.trigger("columnsReordered",j)});if(this.selector){var h=a;this.grid.onMouseEnter.subscribe(function(j,i){h=e.grid.getCellFromEvent(j).row;e.selector.select(h)});this.grid.onMouseLeave.subscribe(function(j,i){h=a;setTimeout(function(){if(typeof h=="undefined"){e.selector.deselect()}},40)})}},update:function(){var b=this;var c=_(this.model.get("filtered")).map(function(d){d.id=b.counter++;return d});this.dataView.beginUpdate();this.dataView.setItems(c);this.dataView.endUpdate()}})})();(function(a){window.piegroups=function(f,n,d,m){var o={};var l=100,i=47,c=Math.min(l,i)/2,j=a.layout.pie().sort(null),e=a.svg.arc().innerRadius(c-15).outerRadius(c-3);var g=a.select("#pie").append("svg:svg").attr("width",l).attr("height",i).append("svg:g").attr("transform","translate("+l/2+","+i/2+")");var b=g.selectAll("path").data(j(k(f))).enter().append("svg:path").attr("fill",function(p,h){return d[n[h]]}).attr("d",e).each(function(p,h){a.select(this).append("svg:title").text(n[h])});o.update=function(h){if(_.isEmpty(h)){return}b=b.data(j(k(h)));b.attr("d",e)};function k(p){var h={};_(p).chain().groupBy(m).each(function(r,q){h[q]=r.length});return _(n).map(function(q){if(q in h){return h[q]}else{return 0}})}return o};window.pietotals=function(k,e){var l={};var j=100,g=47,c=Math.min(j,g)/2,i=a.layout.pie().sort(null),d=a.svg.arc().innerRadius(c-15).outerRadius(c-3);var f=a.select("#totals").append("svg:svg").attr("width",j).attr("height",g).append("svg:g").attr("transform","translate("+j/2+","+g/2+")");var b=f.selectAll("path").data(i(e)).enter().append("svg:path").attr("class",function(m,h){return k[h]}).attr("d",d).each(function(m,h){a.select(this).append("svg:title").text(k[h])});l.update=function(h){b=b.data(i(h));b.attr("d",d)};return l}})(d3);function SetOptions(){if(localStorage.hidden==="true"){$(".intro").hide();$("#show_instructions").show()}$("#hide_instructions").click(function(){if(localStorage){localStorage.hidden="true"}$(".intro").hide();$("#show_instructions").show();return false});$("#show_instructions").click(function(){if(localStorage){localStorage.hidden="false"}$(".intro").fadeIn();$("#show_instructions").hide();return false});a("inverted");a("no_ticks");a("shadows");function a(b,c){if(localStorage[b]==="true"){$("body").addClass(b);$("#"+b).addClass("on")}$("#"+b).click(function(){if(localStorage&&localStorage[b]!="true"){localStorage[b]="true";$("body").addClass(b);$("#"+b).addClass("on");if(c){c()}}else{if(localStorage){localStorage[b]="false"}$("body").removeClass(b);$("#"+b).removeClass("on");if(c){c()}}return false})}}if(typeof jQuery==="undefined"){throw"SlickGrid requires jquery module to be loaded"}if(!jQuery.fn.drag){throw"SlickGrid requires jquery.event.drag module to be loaded"}if(typeof Slick==="undefined"){throw"slick.core.js not loaded"}(function($){$.extend(true,window,{Slick:{Grid:SlickGrid}});var scrollbarDimensions;function SlickGrid(container,data,columns,options){var defaults={headerHeight:25,rowHeight:25,defaultColumnWidth:80,enableAddRow:false,leaveSpaceForNewRows:false,editable:false,autoEdit:true,enableCellNavigation:true,enableCellRangeSelection:false,enableColumnReorder:true,asyncEditorLoading:false,asyncEditorLoadDelay:100,forceFitColumns:false,enableAsyncPostRender:false,asyncPostRenderDelay:60,autoHeight:false,editorLock:Slick.GlobalEditorLock,showHeaderRow:false,headerRowHeight:25,showTopPanel:false,topPanelHeight:25,formatterFactory:null,editorFactory:null,cellFlashingCssClass:"flashing",selectedCellCssClass:"selected",multiSelect:true,enableTextSelectionOnCells:false};var columnDefaults={name:"",resizable:true,sortable:false,minWidth:30,rerenderOnResize:false,headerCssClass:null};var maxSupportedCssHeight;var th;var h;var ph;var n;var cj;var page=0;var offset=0;var scrollDir=1;var $container;var uid="slickgrid_"+Math.round(1000000*Math.random());var self=this;var $headerScroller;var $headers;var $headerRow,$headerRowScroller;var $topPanelScroller;var $topPanel;var $viewport;var $canvas;var $style;var stylesheet;var viewportH,viewportW;var viewportHasHScroll;var headerColumnWidthDiff,headerColumnHeightDiff,cellWidthDiff,cellHeightDiff;var absoluteColumnMinWidth;var activePosX;var activeRow,activeCell;var activeCellNode=null;var currentEditor=null;var serializedEditorValue;var editController;var rowsCache={};var renderedRows=0;var numVisibleRows;var prevScrollTop=0;var scrollTop=0;var lastRenderedScrollTop=0;var prevScrollLeft=0;var avgRowRenderTime=10;var selectionModel;var selectedRows=[];var plugins=[];var cellCssClasses={};var columnsById={};var sortColumnId;var sortAsc=true;var h_editorLoader=null;var h_render=null;var h_postrender=null;var postProcessedRows={};var postProcessToRow=null;var postProcessFromRow=null;var counter_rows_rendered=0;var counter_rows_removed=0;function init(){$container=$(container);if($container.length<1){throw new Error("SlickGrid requires a valid container, "+container+" does not exist in the DOM.")}maxSupportedCssHeight=getMaxSupportedCssHeight();scrollbarDimensions=scrollbarDimensions||measureScrollbar();options=$.extend({},defaults,options);columnDefaults.width=options.defaultColumnWidth;if(options.enableColumnReorder&&!$.fn.sortable){throw new Error('SlickGrid\'s "enableColumnReorder = true" option requires jquery-ui.sortable module to be loaded')}editController={commitCurrentEdit:commitCurrentEdit,cancelCurrentEdit:cancelCurrentEdit};$container.empty().attr("tabIndex",0).attr("hideFocus",true).css("overflow","hidden").css("outline",0).addClass(uid).addClass("ui-widget");if(!/relative|absolute|fixed/.test($container.css("position"))){$container.css("position","relative")}$headerScroller=$("<div class='slick-header ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$headers=$("<div class='slick-header-columns' style='width:10000px; left:-1000px' />").appendTo($headerScroller);$headerRowScroller=$("<div class='slick-headerrow ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$headerRow=$("<div class='slick-headerrow-columns' style='width:10000px;' />").appendTo($headerRowScroller);$topPanelScroller=$("<div class='slick-top-panel-scroller ui-state-default' style='overflow:hidden;position:relative;' />").appendTo($container);$topPanel=$("<div class='slick-top-panel' style='width:10000px' />").appendTo($topPanelScroller);if(!options.showTopPanel){$topPanelScroller.hide()}if(!options.showHeaderRow){$headerRowScroller.hide()}$viewport=$("<div class='slick-viewport' tabIndex='0' hideFocus style='width:100%;overflow-x:auto;outline:0;position:relative;overflow-y:auto;'>").appendTo($container);$canvas=$("<div class='grid-canvas' tabIndex='0' hideFocus />").appendTo($viewport);measureCellPaddingAndBorder();disableSelection($headers);if(!options.enableTextSelectionOnCells){$viewport.bind("selectstart.ui",function(event){return $(event.target).is("input,textarea")})}viewportW=parseFloat($.css($container[0],"width",true));createColumnHeaders();setupColumnSort();createCssRules();resizeAndRender();bindAncestorScrollEvents();$viewport.bind("scroll.slickgrid",handleScroll);$container.bind("resize.slickgrid",resizeAndRender);$headerScroller.bind("contextmenu.slickgrid",handleHeaderContextMenu).bind("click.slickgrid",handleHeaderClick);$canvas.bind("keydown.slickgrid",handleKeyDown).bind("click.slickgrid",handleClick).bind("dblclick.slickgrid",handleDblClick).bind("contextmenu.slickgrid",handleContextMenu).bind("draginit",handleDragInit).bind("dragstart",handleDragStart).bind("drag",handleDrag).bind("dragend",handleDragEnd);$canvas.delegate(".slick-cell","mouseenter",handleMouseEnter);$canvas.delegate(".slick-cell","mouseleave",handleMouseLeave)}function registerPlugin(plugin){plugins.unshift(plugin);plugin.init(self)}function unregisterPlugin(plugin){for(var i=plugins.length;i>=0;i--){if(plugins[i]===plugin){if(plugins[i].destroy){plugins[i].destroy()}plugins.splice(i,1);break}}}function setSelectionModel(model){if(selectionModel){selectionModel.onSelectedRangesChanged.unsubscribe(handleSelectedRangesChanged);if(selectionModel.destroy){selectionModel.destroy()}}selectionModel=model;if(selectionModel){selectionModel.init(self);selectionModel.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged)}}function getSelectionModel(){return selectionModel}function getCanvasNode(){return $canvas[0]}function measureScrollbar(){var $c=$("<div style='position:absolute; top:-10000px; left:-10000px; width:100px; height:100px; overflow:scroll;'></div>").appendTo("body");var dim={width:$c.width()-$c[0].clientWidth,height:$c.height()-$c[0].clientHeight};$c.remove();return dim}function getRowWidth(){var rowWidth=0;var i=columns.length;while(i--){rowWidth+=(columns[i].width||columnDefaults.width)}return rowWidth}function setCanvasWidth(width){$canvas.width(width);viewportHasHScroll=(width>viewportW-scrollbarDimensions.width)}function disableSelection($target){if($target&&$target.jquery){$target.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}}function getMaxSupportedCssHeight(){var increment=1000000;var supportedHeight=increment;var testUpTo=($.browser.mozilla)?5000000:1000000000;var div=$("<div style='display:none' />").appendTo(document.body);while(supportedHeight<=testUpTo){div.css("height",supportedHeight+increment);if(div.height()!==supportedHeight+increment){break}else{supportedHeight+=increment}}div.remove();return supportedHeight}function bindAncestorScrollEvents(){var elem=$canvas[0];while((elem=elem.parentNode)!=document.body){if(elem==$viewport[0]||elem.scrollWidth!=elem.clientWidth||elem.scrollHeight!=elem.clientHeight){$(elem).bind("scroll.slickgrid",handleActiveCellPositionChange)}}}function unbindAncestorScrollEvents(){$canvas.parents().unbind("scroll.slickgrid")}function updateColumnHeader(columnId,title,toolTip){var idx=getColumnIndex(columnId);var $header=$headers.children().eq(idx);if($header){columns[idx].name=title;columns[idx].toolTip=toolTip;$header.attr("title",toolTip||title||"").children().eq(0).html(title)}}function getHeaderRow(){return $headerRow[0]}function getHeaderRowColumn(columnId){var idx=getColumnIndex(columnId);var $header=$headerRow.children().eq(idx);return $header&&$header[0]}function createColumnHeaders(){var i;function hoverBegin(){$(this).addClass("ui-state-hover")}function hoverEnd(){$(this).removeClass("ui-state-hover")}$headers.empty();$headerRow.empty();columnsById={};for(i=0;i<columns.length;i++){var m=columns[i]=$.extend({},columnDefaults,columns[i]);columnsById[m.id]=i;var header=$("<div class='ui-state-default slick-header-column' id='"+uid+m.id+"' />").html("<span class='slick-column-name'>"+m.name+"</span>").width(m.width-headerColumnWidthDiff).attr("title",m.toolTip||m.name||"").data("fieldId",m.id).addClass(m.headerCssClass||"").appendTo($headers);if(options.enableColumnReorder||m.sortable){header.hover(hoverBegin,hoverEnd)}if(m.sortable){header.append("<span class='slick-sort-indicator' />")}if(options.showHeaderRow){$("<div class='ui-state-default slick-headerrow-column c"+i+"'></div>").appendTo($headerRow)}}setSortColumn(sortColumnId,sortAsc);setupColumnResize();if(options.enableColumnReorder){setupColumnReorder()}}function setupColumnSort(){$headers.click(function(e){if($(e.target).hasClass("slick-resizable-handle")){return}var $col=$(e.target).closest(".slick-header-column");if(!$col.length){return}var column=columns[getColumnIndex($col.data("fieldId"))];if(column.sortable){if(!getEditorLock().commitCurrentEdit()){return}if(column.id===sortColumnId){sortAsc=!sortAsc}else{sortColumnId=column.id;sortAsc=true}setSortColumn(sortColumnId,sortAsc);trigger(self.onSort,{sortCol:column,sortAsc:sortAsc})}})}function setupColumnReorder(){$headers.sortable({containment:"parent",axis:"x",cursor:"default",tolerance:"intersection",helper:"clone",placeholder:"slick-sortable-placeholder ui-state-default slick-header-column",forcePlaceholderSize:true,start:function(e,ui){$(ui.helper).addClass("slick-header-column-active")},beforeStop:function(e,ui){$(ui.helper).removeClass("slick-header-column-active")},stop:function(e){if(!getEditorLock().commitCurrentEdit()){$(this).sortable("cancel");return}var reorderedIds=$headers.sortable("toArray");var reorderedColumns=[];for(var i=0;i<reorderedIds.length;i++){reorderedColumns.push(columns[getColumnIndex(reorderedIds[i].replace(uid,""))])}setColumns(reorderedColumns);trigger(self.onColumnsReordered,{});e.stopPropagation();setupColumnResize()}})}function setupColumnResize(){var $col,j,c,pageX,columnElements,minPageX,maxPageX,firstResizable,lastResizable,originalCanvasWidth;columnElements=$headers.children();columnElements.find(".slick-resizable-handle").remove();columnElements.each(function(i,e){if(columns[i].resizable){if(firstResizable===undefined){firstResizable=i}lastResizable=i}});if(firstResizable===undefined){return}columnElements.each(function(i,e){if(i<firstResizable||(options.forceFitColumns&&i>=lastResizable)){return}$col=$(e);$("<div class='slick-resizable-handle' />").appendTo(e).bind("dragstart",function(e,dd){if(!getEditorLock().commitCurrentEdit()){return false}pageX=e.pageX;$(this).parent().addClass("slick-header-column-active");var shrinkLeewayOnRight=null,stretchLeewayOnRight=null;columnElements.each(function(i,e){columns[i].previousWidth=$(e).outerWidth()});if(options.forceFitColumns){shrinkLeewayOnRight=0;stretchLeewayOnRight=0;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){if(stretchLeewayOnRight!==null){if(c.maxWidth){stretchLeewayOnRight+=c.maxWidth-c.previousWidth}else{stretchLeewayOnRight=null}}shrinkLeewayOnRight+=c.previousWidth-Math.max(c.minWidth||0,absoluteColumnMinWidth)}}}var shrinkLeewayOnLeft=0,stretchLeewayOnLeft=0;for(j=0;j<=i;j++){c=columns[j];if(c.resizable){if(stretchLeewayOnLeft!==null){if(c.maxWidth){stretchLeewayOnLeft+=c.maxWidth-c.previousWidth}else{stretchLeewayOnLeft=null}}shrinkLeewayOnLeft+=c.previousWidth-Math.max(c.minWidth||0,absoluteColumnMinWidth)}}if(shrinkLeewayOnRight===null){shrinkLeewayOnRight=100000}if(shrinkLeewayOnLeft===null){shrinkLeewayOnLeft=100000}if(stretchLeewayOnRight===null){stretchLeewayOnRight=100000}if(stretchLeewayOnLeft===null){stretchLeewayOnLeft=100000}maxPageX=pageX+Math.min(shrinkLeewayOnRight,stretchLeewayOnLeft);minPageX=pageX-Math.min(shrinkLeewayOnLeft,stretchLeewayOnRight);originalCanvasWidth=$canvas.width()}).bind("drag",function(e,dd){var actualMinWidth,d=Math.min(maxPageX,Math.max(minPageX,e.pageX))-pageX,x,ci;if(d<0){x=d;for(j=i;j>=0;j--){c=columns[j];if(c.resizable){actualMinWidth=Math.max(c.minWidth||0,absoluteColumnMinWidth);if(x&&c.previousWidth+x<actualMinWidth){x+=c.previousWidth-actualMinWidth;c.width=actualMinWidth}else{c.width=c.previousWidth+x;x=0}}}if(options.forceFitColumns){x=-d;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){if(x&&c.maxWidth&&(c.maxWidth-c.previousWidth<x)){x-=c.maxWidth-c.previousWidth;c.width=c.maxWidth}else{c.width=c.previousWidth+x;x=0}}}}else{if(options.syncColumnCellResize){setCanvasWidth(originalCanvasWidth+d)}}}else{x=d;for(j=i;j>=0;j--){c=columns[j];if(c.resizable){if(x&&c.maxWidth&&(c.maxWidth-c.previousWidth<x)){x-=c.maxWidth-c.previousWidth;c.width=c.maxWidth}else{c.width=c.previousWidth+x;x=0}}}if(options.forceFitColumns){x=-d;for(j=i+1;j<columnElements.length;j++){c=columns[j];if(c.resizable){actualMinWidth=Math.max(c.minWidth||0,absoluteColumnMinWidth);if(x&&c.previousWidth+x<actualMinWidth){x+=c.previousWidth-actualMinWidth;c.width=actualMinWidth}else{c.width=c.previousWidth+x;x=0}}}}else{if(options.syncColumnCellResize){setCanvasWidth(originalCanvasWidth+d)}}}applyColumnHeaderWidths();if(options.syncColumnCellResize){applyColumnWidths()}}).bind("dragend",function(e,dd){var newWidth;$(this).parent().removeClass("slick-header-column-active");for(j=0;j<columnElements.length;j++){c=columns[j];newWidth=$(columnElements[j]).outerWidth();if(c.previousWidth!==newWidth&&c.rerenderOnResize){invalidateAllRows()}}applyColumnWidths();resizeCanvas();trigger(self.onColumnsResized,{})})})}function getVBoxDelta($el){var p=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];var delta=0;$.each(p,function(n,val){delta+=parseFloat($el.css(val))||0});return delta}function measureCellPaddingAndBorder(){var el;var h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"];var v=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"];el=$("<div class='ui-state-default slick-header-column' style='visibility:hidden'>-</div>").appendTo($headers);headerColumnWidthDiff=headerColumnHeightDiff=0;$.each(h,function(n,val){headerColumnWidthDiff+=parseFloat(el.css(val))||0});$.each(v,function(n,val){headerColumnHeightDiff+=parseFloat(el.css(val))||0});el.remove();var r=$("<div class='slick-row' />").appendTo($canvas);el=$("<div class='slick-cell' id='' style='visibility:hidden'>-</div>").appendTo(r);cellWidthDiff=cellHeightDiff=0;$.each(h,function(n,val){cellWidthDiff+=parseFloat(el.css(val))||0});$.each(v,function(n,val){cellHeightDiff+=parseFloat(el.css(val))||0});r.remove();absoluteColumnMinWidth=Math.max(headerColumnWidthDiff,cellWidthDiff)}function createCssRules(){$style=$("<style type='text/css' rel='stylesheet' />").appendTo($("head"));var rowHeight=(options.rowHeight-cellHeightDiff);var rules=["."+uid+" .slick-header-column { left: 1000px; }","."+uid+" .slick-top-panel { height:"+options.topPanelHeight+"px; }","."+uid+" .slick-headerrow-columns { height:"+options.headerRowHeight+"px; }","."+uid+" .slick-cell { height:"+rowHeight+"px; }","."+uid+" .slick-row { width:"+getRowWidth()+"px; height:"+options.rowHeight+"px; }","."+uid+" .lr { float:none; position:absolute; }"];var rowWidth=getRowWidth();var x=0,w;for(var i=0;i<columns.length;i++){w=columns[i].width;rules.push("."+uid+" .l"+i+" { left: "+x+"px; }");rules.push("."+uid+" .r"+i+" { right: "+(rowWidth-x-w)+"px; }");x+=columns[i].width}if($style[0].styleSheet){$style[0].styleSheet.cssText=rules.join(" ")}else{$style[0].appendChild(document.createTextNode(rules.join(" ")))}var sheets=document.styleSheets;for(var i=0;i<sheets.length;i++){if((sheets[i].ownerNode||sheets[i].owningElement)==$style[0]){stylesheet=sheets[i];break}}}function findCssRule(selector){var rules=(stylesheet.cssRules||stylesheet.rules);for(var i=0;i<rules.length;i++){if(rules[i].selectorText==selector){return rules[i]}}return null}function removeCssRules(){$style.remove()}function destroy(){getEditorLock().cancelCurrentEdit();trigger(self.onBeforeDestroy,{});for(var i=0;i<plugins.length;i++){unregisterPlugin(plugins[i])}if(options.enableColumnReorder&&$headers.sortable){$headers.sortable("destroy")}unbindAncestorScrollEvents();$container.unbind(".slickgrid");removeCssRules();$canvas.unbind("draginit dragstart dragend drag");$container.empty().removeClass(uid)}function trigger(evt,args,e){e=e||new Slick.EventData();args=args||{};args.grid=self;return evt.notify(args,e,self)}function getEditorLock(){return options.editorLock}function getEditController(){return editController}function getColumnIndex(id){return columnsById[id]}function autosizeColumns(){var i,c,widths=[],shrinkLeeway=0,availWidth=(options.autoHeight?viewportW:viewportW-scrollbarDimensions.width),total=0,existingTotal=0;for(i=0;i<columns.length;i++){c=columns[i];widths.push(c.width);existingTotal+=c.width;shrinkLeeway+=c.width-Math.max(c.minWidth||0,absoluteColumnMinWidth)}total=existingTotal;invalidateAllRows();while(total>availWidth){if(!shrinkLeeway){return}var shrinkProportion=(total-availWidth)/shrinkLeeway;for(i=0;i<columns.length&&total>availWidth;i++){c=columns[i];if(!c.resizable||c.minWidth===c.width||c.width===absoluteColumnMinWidth){continue}var shrinkSize=Math.floor(shrinkProportion*(c.width-Math.max(c.minWidth||0,absoluteColumnMinWidth)))||1;total-=shrinkSize;widths[i]-=shrinkSize}}var previousTotal=total;while(total<availWidth){var growProportion=availWidth/total;for(i=0;i<columns.length&&total<availWidth;i++){c=columns[i];if(!c.resizable||c.maxWidth<=c.width){continue}var growSize=Math.min(Math.floor(growProportion*c.width)-c.width,(c.maxWidth-c.width)||1000000)||1;total+=growSize;widths[i]+=growSize}if(previousTotal==total){break}previousTotal=total}for(i=0;i<columns.length;i++){columns[i].width=widths[i]}applyColumnHeaderWidths();applyColumnWidths();resizeCanvas()}function applyColumnHeaderWidths(){var h;for(var i=0,headers=$headers.children(),ii=headers.length;i<ii;i++){h=$(headers[i]);if(h.width()!==columns[i].width-headerColumnWidthDiff){h.width(columns[i].width-headerColumnWidthDiff)}}}function applyColumnWidths(){var rowWidth=getRowWidth();var x=0,w,rule;for(var i=0;i<columns.length;i++){w=columns[i].width;rule=findCssRule("."+uid+" .l"+i);rule.style.left=x+"px";rule=findCssRule("."+uid+" .r"+i);rule.style.right=(rowWidth-x-w)+"px";x+=columns[i].width}rule=findCssRule("."+uid+" .slick-row");rule.style.width=rowWidth+"px"}function setSortColumn(columnId,ascending){sortColumnId=columnId;sortAsc=ascending;var columnIndex=getColumnIndex(sortColumnId);$headers.children().removeClass("slick-header-column-sorted");$headers.find(".slick-sort-indicator").removeClass("slick-sort-indicator-asc slick-sort-indicator-desc");if(columnIndex!=null){$headers.children().eq(columnIndex).addClass("slick-header-column-sorted").find(".slick-sort-indicator").addClass(sortAsc?"slick-sort-indicator-asc":"slick-sort-indicator-desc")}}function handleSelectedRangesChanged(e,ranges){selectedRows=[];var hash={};for(var i=0;i<ranges.length;i++){for(var j=ranges[i].fromRow;j<=ranges[i].toRow;j++){if(!hash[j]){selectedRows.push(j)}hash[j]={};for(var k=ranges[i].fromCell;k<=ranges[i].toCell;k++){if(canCellBeSelected(j,k)){hash[j][columns[k].id]=options.selectedCellCssClass}}}}setCellCssStyles(options.selectedCellCssClass,hash);trigger(self.onSelectedRowsChanged,{rows:getSelectedRows()},e)}function getColumns(){return columns}function setColumns(columnDefinitions){columns=columnDefinitions;invalidateAllRows();createColumnHeaders();removeCssRules();createCssRules();resizeAndRender();handleScroll()}function getOptions(){return options}function setOptions(args){if(!getEditorLock().commitCurrentEdit()){return}makeActiveCellNormal();if(options.enableAddRow!==args.enableAddRow){invalidateRow(getDataLength())}options=$.extend(options,args);render()}function setData(newData,scrollToTop){invalidateAllRows();data=newData;if(scrollToTop){scrollTo(0)}}function getData(){return data}function getDataLength(){if(data.getLength){return data.getLength()}else{return data.length}}function getDataItem(i){if(data.getItem){return data.getItem(i)}else{return data[i]}}function getTopPanel(){return $topPanel[0]}function showTopPanel(){options.showTopPanel=true;$topPanelScroller.slideDown("fast",resizeCanvas)}function hideTopPanel(){options.showTopPanel=false;$topPanelScroller.slideUp("fast",resizeCanvas)}function showHeaderRowColumns(){options.showHeaderRow=true;$headerRowScroller.slideDown("fast",resizeCanvas)}function hideHeaderRowColumns(){options.showHeaderRow=false;$headerRowScroller.slideUp("fast",resizeCanvas)}function scrollTo(y){var oldOffset=offset;page=Math.min(n-1,Math.floor(y/ph));offset=Math.round(page*cj);var newScrollTop=y-offset;if(offset!=oldOffset){var range=getVisibleRange(newScrollTop);cleanupRows(range.top,range.bottom);updateRowPositions()}if(prevScrollTop!=newScrollTop){scrollDir=(prevScrollTop+oldOffset<newScrollTop+offset)?1:-1;$viewport[0].scrollTop=(lastRenderedScrollTop=scrollTop=prevScrollTop=newScrollTop);trigger(self.onViewportChanged,{})}}function defaultFormatter(row,cell,value,columnDef,dataContext){return(value===null||value===undefined)?"":value}function getFormatter(row,column){var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);var columnOverrides=rowMetadata&&rowMetadata.columns&&(rowMetadata.columns[column.id]||rowMetadata.columns[getColumnIndex(column.id)]);return(columnOverrides&&columnOverrides.formatter)||(rowMetadata&&rowMetadata.formatter)||column.formatter||(options.formatterFactory&&options.formatterFactory.getFormatter(column))||defaultFormatter}function getEditor(row,cell){var column=columns[cell];var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);var columnMetadata=rowMetadata&&rowMetadata.columns;if(columnMetadata&&columnMetadata[column.id]&&columnMetadata[column.id].editor!==undefined){return columnMetadata[column.id].editor}if(columnMetadata&&columnMetadata[cell]&&columnMetadata[cell].editor!==undefined){return columnMetadata[cell].editor}return column.editor||(options.editorFactory&&options.editorFactory.getEditor(column))}function appendRowHtml(stringArray,row){var d=getDataItem(row);var dataLoading=row<getDataLength()&&!d;var cellCss;var rowCss="slick-row "+(dataLoading?" loading":"")+(row%2==1?" odd":" even");var metadata=data.getItemMetadata&&data.getItemMetadata(row);if(metadata&&metadata.cssClasses){rowCss+=" "+metadata.cssClasses}stringArray.push("<div class='ui-widget-content "+rowCss+"' row='"+row+"' style='top:"+(options.rowHeight*row-offset)+"px'>");var colspan;var rowHasColumnData=metadata&&metadata.columns;for(var i=0,cols=columns.length;i<cols;i++){var m=columns[i];colspan=getColspan(row,i);cellCss="slick-cell lr l"+i+" r"+Math.min(columns.length-1,i+colspan-1)+(m.cssClass?" "+m.cssClass:"");if(row===activeRow&&i===activeCell){cellCss+=(" active")}for(var key in cellCssClasses){if(cellCssClasses[key][row]&&cellCssClasses[key][row][m.id]){cellCss+=(" "+cellCssClasses[key][row][m.id])}}stringArray.push("<div class='"+cellCss+"'>");if(d){stringArray.push(getFormatter(row,m)(row,i,d[m.field],m,d))}stringArray.push("</div>");if(colspan){i+=(colspan-1)}}stringArray.push("</div>")}function cleanupRows(rangeToKeep){for(var i in rowsCache){if(((i=parseInt(i,10))!==activeRow)&&(i<rangeToKeep.top||i>rangeToKeep.bottom)){removeRowFromCache(i)}}}function invalidate(){updateRowCount();invalidateAllRows();render()}function invalidateAllRows(){if(currentEditor){makeActiveCellNormal()}for(var row in rowsCache){removeRowFromCache(row)}}function removeRowFromCache(row){var node=rowsCache[row];if(!node){return}$canvas[0].removeChild(node);delete rowsCache[row];delete postProcessedRows[row];renderedRows--;counter_rows_removed++}function invalidateRows(rows){var i,rl;if(!rows||!rows.length){return}scrollDir=0;for(i=0,rl=rows.length;i<rl;i++){if(currentEditor&&activeRow===i){makeActiveCellNormal()}if(rowsCache[rows[i]]){removeRowFromCache(rows[i])}}}function invalidateRow(row){invalidateRows([row])}function updateCell(row,cell){var cellNode=getCellNode(row,cell);if(!cellNode){return}var m=columns[cell],d=getDataItem(row);if(currentEditor&&activeRow===row&&activeCell===cell){currentEditor.loadValue(d)}else{cellNode.innerHTML=d?getFormatter(row,m)(row,cell,d[m.field],m,d):"";invalidatePostProcessingResults(row)}}function updateRow(row){if(!rowsCache[row]){return}$(rowsCache[row]).children().each(function(i){var m=columns[i];if(row===activeRow&&i===activeCell&¤tEditor){currentEditor.loadValue(getDataItem(activeRow))}else{if(getDataItem(row)){this.innerHTML=getFormatter(row,m)(row,i,getDataItem(row)[m.field],m,getDataItem(row))}else{this.innerHTML=""}}});invalidatePostProcessingResults(row)}function getViewportHeight(){return parseFloat($.css($container[0],"height",true))-options.headerHeight-getVBoxDelta($headers)-(options.showTopPanel?options.topPanelHeight+getVBoxDelta($topPanelScroller):0)-(options.showHeaderRow?options.headerRowHeight+getVBoxDelta($headerRowScroller):0)}function resizeCanvas(){if(options.autoHeight){viewportH=options.rowHeight*(getDataLength()+(options.enableAddRow?1:0)+(options.leaveSpaceForNewRows?numVisibleRows-1:0))}else{viewportH=getViewportHeight()}numVisibleRows=Math.ceil(viewportH/options.rowHeight);viewportW=parseFloat($.css($container[0],"width",true));$viewport.height(viewportH);var w=0,i=columns.length;while(i--){w+=columns[i].width}setCanvasWidth(w);updateRowCount();render()}function resizeAndRender(){if(options.forceFitColumns){autosizeColumns()}else{resizeCanvas()}}function updateRowCount(){var newRowCount=getDataLength()+(options.enableAddRow?1:0)+(options.leaveSpaceForNewRows?numVisibleRows-1:0);var oldH=h;var l=options.enableAddRow?getDataLength():getDataLength()-1;for(var i in rowsCache){if(i>=l){removeRowFromCache(i)}}th=Math.max(options.rowHeight*newRowCount,viewportH-scrollbarDimensions.height);if(th<maxSupportedCssHeight){h=ph=th;n=1;cj=0}else{h=maxSupportedCssHeight;ph=h/100;n=Math.floor(th/ph);cj=(th-h)/(n-1)}if(h!==oldH){$canvas.css("height",h);scrollTop=$viewport[0].scrollTop}var oldScrollTopInRange=(scrollTop+offset<=th-viewportH);if(th==0||scrollTop==0){page=offset=0}else{if(oldScrollTopInRange){scrollTo(scrollTop+offset)}else{scrollTo(th-viewportH)}}if(h!=oldH&&options.autoHeight){resizeCanvas()}}function getVisibleRange(viewportTop){if(viewportTop==null){viewportTop=scrollTop}return{top:Math.floor((scrollTop+offset)/options.rowHeight),bottom:Math.ceil((scrollTop+offset+viewportH)/options.rowHeight)}}function getRenderedRange(viewportTop){var range=getVisibleRange(viewportTop);var buffer=Math.round(viewportH/options.rowHeight);var minBuffer=3;if(scrollDir==-1){range.top-=buffer;range.bottom+=minBuffer}else{if(scrollDir==1){range.top-=minBuffer;range.bottom+=buffer}else{range.top-=minBuffer;range.bottom+=minBuffer}}range.top=Math.max(0,range.top);range.bottom=Math.min(options.enableAddRow?getDataLength():getDataLength()-1,range.bottom);return range}function renderRows(range){var i,l,parentNode=$canvas[0],rowsBefore=renderedRows,stringArray=[],rows=[],startTimestamp=new Date(),needToReselectCell=false;for(i=range.top;i<=range.bottom;i++){if(rowsCache[i]){continue}renderedRows++;rows.push(i);appendRowHtml(stringArray,i);if(activeCellNode&&activeRow===i){needToReselectCell=true}counter_rows_rendered++}var x=document.createElement("div");x.innerHTML=stringArray.join("");for(i=0,l=x.childNodes.length;i<l;i++){rowsCache[rows[i]]=parentNode.appendChild(x.firstChild)}if(needToReselectCell){activeCellNode=getCellNode(activeRow,activeCell)}if(renderedRows-rowsBefore>5){avgRowRenderTime=(new Date()-startTimestamp)/(renderedRows-rowsBefore)}}function startPostProcessing(){if(!options.enableAsyncPostRender){return}clearTimeout(h_postrender);h_postrender=setTimeout(asyncPostProcessRows,options.asyncPostRenderDelay)}function invalidatePostProcessingResults(row){delete postProcessedRows[row];postProcessFromRow=Math.min(postProcessFromRow,row);postProcessToRow=Math.max(postProcessToRow,row);startPostProcessing()}function updateRowPositions(){for(var row in rowsCache){rowsCache[row].style.top=(row*options.rowHeight-offset)+"px"}}function render(){var visible=getVisibleRange();var rendered=getRenderedRange();cleanupRows(rendered);renderRows(rendered);postProcessFromRow=visible.top;postProcessToRow=Math.min(options.enableAddRow?getDataLength():getDataLength()-1,visible.bottom);startPostProcessing();lastRenderedScrollTop=scrollTop;h_render=null}function handleScroll(){scrollTop=$viewport[0].scrollTop;var scrollLeft=$viewport[0].scrollLeft;var scrollDist=Math.abs(scrollTop-prevScrollTop);if(scrollLeft!==prevScrollLeft){prevScrollLeft=scrollLeft;$headerScroller[0].scrollLeft=scrollLeft;$topPanelScroller[0].scrollLeft=scrollLeft;$headerRowScroller[0].scrollLeft=scrollLeft}if(scrollDist){scrollDir=prevScrollTop<scrollTop?1:-1;prevScrollTop=scrollTop;if(scrollDist<viewportH){scrollTo(scrollTop+offset)}else{var oldOffset=offset;page=Math.min(n-1,Math.floor(scrollTop*((th-viewportH)/(h-viewportH))*(1/ph)));offset=Math.round(page*cj);if(oldOffset!=offset){invalidateAllRows()}}if(h_render){clearTimeout(h_render)}if(Math.abs(lastRenderedScrollTop-scrollTop)<viewportH){render()}else{h_render=setTimeout(render,50)}trigger(self.onViewportChanged,{})}trigger(self.onScroll,{scrollLeft:scrollLeft,scrollTop:scrollTop})}function asyncPostProcessRows(){while(postProcessFromRow<=postProcessToRow){var row=(scrollDir>=0)?postProcessFromRow++:postProcessToRow--;var rowNode=rowsCache[row];if(!rowNode||postProcessedRows[row]||row>=getDataLength()){continue}var d=getDataItem(row),cellNodes=rowNode.childNodes;for(var i=0,j=0,l=columns.length;i<l;++i){var m=columns[i];if(m.asyncPostRender){m.asyncPostRender(cellNodes[j],postProcessFromRow,d,m)}++j}postProcessedRows[row]=true;h_postrender=setTimeout(asyncPostProcessRows,options.asyncPostRenderDelay);return}}function addCellCssStyles(key,hash){if(cellCssClasses[key]){throw"addCellCssStyles: cell CSS hash with key '"+key+"' already exists."}cellCssClasses[key]=hash;var node;for(var row in rowsCache){if(hash[row]){for(var columnId in hash[row]){node=getCellNode(row,getColumnIndex(columnId));if(node){$(node).addClass(hash[row][columnId])}}}}}function removeCellCssStyles(key){if(!cellCssClasses[key]){return}var node;for(var row in rowsCache){if(cellCssClasses[key][row]){for(var columnId in cellCssClasses[key][row]){node=getCellNode(row,getColumnIndex(columnId));if(node){$(node).removeClass(cellCssClasses[key][row][columnId])}}}}delete cellCssClasses[key]}function setCellCssStyles(key,hash){removeCellCssStyles(key);addCellCssStyles(key,hash)}function flashCell(row,cell,speed){speed=speed||100;if(rowsCache[row]){var $cell=$(getCellNode(row,cell));function toggleCellClass(times){if(!times){return}setTimeout(function(){$cell.queue(function(){$cell.toggleClass(options.cellFlashingCssClass).dequeue();toggleCellClass(times-1)})},speed)}toggleCellClass(4)}}function handleDragInit(e,dd){var cell=getCellFromEvent(e);if(!cell||!cellExists(cell.row,cell.cell)){return false}retval=trigger(self.onDragInit,dd,e);if(e.isImmediatePropagationStopped()){return retval}return false}function handleDragStart(e,dd){var cell=getCellFromEvent(e);if(!cell||!cellExists(cell.row,cell.cell)){return false}var retval=trigger(self.onDragStart,dd,e);if(e.isImmediatePropagationStopped()){return retval}return false}function handleDrag(e,dd){return trigger(self.onDrag,dd,e)}function handleDragEnd(e,dd){trigger(self.onDragEnd,dd,e)}function handleKeyDown(e){trigger(self.onKeyDown,{},e);var handled=e.isImmediatePropagationStopped();if(!handled){if(!e.shiftKey&&!e.altKey&&!e.ctrlKey){if(e.which==27){if(!getEditorLock().isActive()){return}cancelEditAndSetFocus()}else{if(e.which==37){navigateLeft()}else{if(e.which==39){navigateRight()}else{if(e.which==38){navigateUp()}else{if(e.which==40){navigateDown()}else{if(e.which==9){navigateNext()}else{if(e.which==13){if(options.editable){if(currentEditor){if(activeRow===getDataLength()){navigateDown()}else{commitEditAndSetFocus()}}else{if(getEditorLock().commitCurrentEdit()){makeActiveCellEditable()}}}}else{return}}}}}}}}else{if(e.which==9&&e.shiftKey&&!e.ctrlKey&&!e.altKey){navigatePrev()}else{return}}}e.stopPropagation();e.preventDefault();try{e.originalEvent.keyCode=0}catch(error){}}function handleClick(e){var cell=getCellFromEvent(e);if(!cell||(currentEditor!==null&&activeRow==cell.row&&activeCell==cell.cell)){return}trigger(self.onClick,{row:cell.row,cell:cell.cell},e);if(e.isImmediatePropagationStopped()){return}if(canCellBeActive(cell.row,cell.cell)){if(!getEditorLock().isActive()||getEditorLock().commitCurrentEdit()){scrollRowIntoView(cell.row,false);setActiveCellInternal(getCellNode(cell.row,cell.cell),(cell.row===getDataLength())||options.autoEdit)}}}function handleContextMenu(e){var $cell=$(e.target).closest(".slick-cell",$canvas);if($cell.length===0){return}if(activeCellNode===$cell[0]&¤tEditor!==null){return}trigger(self.onContextMenu,{},e)}function handleDblClick(e){var cell=getCellFromEvent(e);if(!cell||(currentEditor!==null&&activeRow==cell.row&&activeCell==cell.cell)){return}trigger(self.onDblClick,{row:cell.row,cell:cell.cell},e);if(e.isImmediatePropagationStopped()){return}if(options.editable){gotoCell(cell.row,cell.cell,true)}}function handleHeaderContextMenu(e){var $header=$(e.target).closest(".slick-header-column",".slick-header-columns");var column=$header&&columns[self.getColumnIndex($header.data("fieldId"))];trigger(self.onHeaderContextMenu,{column:column},e)}function handleHeaderClick(e){var $header=$(e.target).closest(".slick-header-column",".slick-header-columns");var column=$header&&columns[self.getColumnIndex($header.data("fieldId"))];trigger(self.onHeaderClick,{column:column},e)}function handleMouseEnter(e){trigger(self.onMouseEnter,{},e)}function handleMouseLeave(e){trigger(self.onMouseLeave,{},e)}function cellExists(row,cell){return !(row<0||row>=getDataLength()||cell<0||cell>=columns.length)}function getCellFromPoint(x,y){var row=Math.floor((y+offset)/options.rowHeight);var cell=0;var w=0;for(var i=0;i<columns.length&&w<x;i++){w+=columns[i].width;cell++}if(cell<0){cell=0}return{row:row,cell:cell-1}}function getCellFromNode(node){var cls=/l\d+/.exec(node.className)||/c\d+/.exec(node.className);if(!cls){throw"getCellFromNode: cannot get cell - "+node.className}return parseInt(cls[0].substr(1,cls[0].length-1),10)}function getCellFromEvent(e){var $cell=$(e.target).closest(".slick-cell",$canvas);if(!$cell.length){return null}return{row:$cell.parent().attr("row")|0,cell:getCellFromNode($cell[0])}}function getCellNodeBox(row,cell){if(!cellExists(row,cell)){return null}var y1=row*options.rowHeight-offset;var y2=y1+options.rowHeight-1;var x1=0;for(var i=0;i<cell;i++){x1+=columns[i].width}var x2=x1+columns[cell].width;return{top:y1,left:x1,bottom:y2,right:x2}}function resetActiveCell(){setActiveCellInternal(null,false)}function setFocus(){if($.browser.msie){$canvas[0].setActive()}else{$canvas[0].focus()}}function scrollActiveCellIntoView(){if(activeCellNode){var left=$(activeCellNode).position().left,right=left+$(activeCellNode).outerWidth(),scrollLeft=$viewport.scrollLeft(),scrollRight=scrollLeft+$viewport.width();if(left<scrollLeft){$viewport.scrollLeft(left)}else{if(right>scrollRight){$viewport.scrollLeft(Math.min(left,right-$viewport[0].clientWidth))}}}}function setActiveCellInternal(newCell,editMode){if(activeCellNode!==null){makeActiveCellNormal();$(activeCellNode).removeClass("active")}var activeCellChanged=(activeCellNode!==newCell);activeCellNode=newCell;if(activeCellNode!=null){activeRow=parseInt($(activeCellNode).parent().attr("row"));activeCell=activePosX=getCellFromNode(activeCellNode);$(activeCellNode).addClass("active");if(options.editable&&editMode&&isCellPotentiallyEditable(activeRow,activeCell)){clearTimeout(h_editorLoader);if(options.asyncEditorLoading){h_editorLoader=setTimeout(function(){makeActiveCellEditable()},options.asyncEditorLoadDelay)}else{makeActiveCellEditable()}}else{setFocus()}}else{activeRow=activeCell=null}if(activeCellChanged){scrollActiveCellIntoView();trigger(self.onActiveCellChanged,getActiveCell())}}function clearTextSelection(){if(document.selection&&document.selection.empty){document.selection.empty()}else{if(window.getSelection){var sel=window.getSelection();if(sel&&sel.removeAllRanges){sel.removeAllRanges()}}}}function isCellPotentiallyEditable(row,cell){if(row<getDataLength()&&!getDataItem(row)){return false}if(columns[cell].cannotTriggerInsert&&row>=getDataLength()){return false}if(!getEditor(row,cell)){return false}return true}function makeActiveCellNormal(){if(!currentEditor){return}trigger(self.onBeforeCellEditorDestroy,{editor:currentEditor});currentEditor.destroy();currentEditor=null;if(activeCellNode){$(activeCellNode).removeClass("editable invalid");if(getDataItem(activeRow)){var column=columns[activeCell];activeCellNode.innerHTML=getFormatter(activeRow,column)(activeRow,activeCell,getDataItem(activeRow)[column.field],column,getDataItem(activeRow));invalidatePostProcessingResults(activeRow)}}if($.browser.msie){clearTextSelection()}getEditorLock().deactivate(editController)}function makeActiveCellEditable(editor){if(!activeCellNode){return}if(!options.editable){throw"Grid : makeActiveCellEditable : should never get called when options.editable is false"}clearTimeout(h_editorLoader);if(!isCellPotentiallyEditable(activeRow,activeCell)){return}var columnDef=columns[activeCell];var item=getDataItem(activeRow);if(trigger(self.onBeforeEditCell,{row:activeRow,cell:activeCell,item:item,column:columnDef})===false){setFocus();return}getEditorLock().activate(editController);$(activeCellNode).addClass("editable");if(!editor){activeCellNode.innerHTML=""}currentEditor=new (editor||getEditor(activeRow,activeCell))({grid:self,gridPosition:absBox($container[0]),position:absBox(activeCellNode),container:activeCellNode,column:columnDef,item:item||{},commitChanges:commitEditAndSetFocus,cancelChanges:cancelEditAndSetFocus});if(item){currentEditor.loadValue(item)}serializedEditorValue=currentEditor.serializeValue();if(currentEditor.position){handleActiveCellPositionChange()}}function commitEditAndSetFocus(){if(getEditorLock().commitCurrentEdit()){setFocus();if(options.autoEdit){navigateDown()}}}function cancelEditAndSetFocus(){if(getEditorLock().cancelCurrentEdit()){setFocus()}}function absBox(elem){var box={top:elem.offsetTop,left:elem.offsetLeft,bottom:0,right:0,width:$(elem).outerWidth(),height:$(elem).outerHeight(),visible:true};box.bottom=box.top+box.height;box.right=box.left+box.width;var offsetParent=elem.offsetParent;while((elem=elem.parentNode)!=document.body){if(box.visible&&elem.scrollHeight!=elem.offsetHeight&&$(elem).css("overflowY")!="visible"){box.visible=box.bottom>elem.scrollTop&&box.top<elem.scrollTop+elem.clientHeight}if(box.visible&&elem.scrollWidth!=elem.offsetWidth&&$(elem).css("overflowX")!="visible"){box.visible=box.right>elem.scrollLeft&&box.left<elem.scrollLeft+elem.clientWidth}box.left-=elem.scrollLeft;box.top-=elem.scrollTop;if(elem===offsetParent){box.left+=elem.offsetLeft;box.top+=elem.offsetTop;offsetParent=elem.offsetParent}box.bottom=box.top+box.height;box.right=box.left+box.width}return box}function getActiveCellPosition(){return absBox(activeCellNode)}function getGridPosition(){return absBox($container[0])}function handleActiveCellPositionChange(){if(!activeCellNode){return}var cellBox;trigger(self.onActiveCellPositionChanged,{});if(currentEditor){cellBox=cellBox||getActiveCellPosition();if(currentEditor.show&¤tEditor.hide){if(!cellBox.visible){currentEditor.hide()}else{currentEditor.show()}}if(currentEditor.position){currentEditor.position(cellBox)}}}function getCellEditor(){return currentEditor}function getActiveCell(){if(!activeCellNode){return null}else{return{row:activeRow,cell:activeCell}}}function getActiveCellNode(){return activeCellNode}function scrollRowIntoView(row,doPaging){var rowAtTop=row*options.rowHeight;var rowAtBottom=(row+1)*options.rowHeight-viewportH+(viewportHasHScroll?scrollbarDimensions.height:0);if((row+1)*options.rowHeight>scrollTop+viewportH+offset){scrollTo(doPaging?rowAtTop:rowAtBottom);render()}else{if(row*options.rowHeight<scrollTop+offset){scrollTo(doPaging?rowAtBottom:rowAtTop);render()}}}function getColspan(row,cell){var metadata=data.getItemMetadata&&data.getItemMetadata(row);if(!metadata||!metadata.columns){return 1}var columnData=metadata.columns[columns[cell].id]||metadata.columns[cell];var colspan=(columnData&&columnData.colspan);if(colspan==="*"){colspan=columns.length-cell}return(colspan||1)}function findFirstFocusableCell(row){var cell=0;while(cell<columns.length){if(canCellBeActive(row,cell)){return cell}cell+=getColspan(row,cell)}return null}function findLastFocusableCell(row){var cell=0;var lastFocusableCell=null;while(cell<columns.length){if(canCellBeActive(row,cell)){lastFocusableCell=cell}cell+=getColspan(row,cell)}return lastFocusableCell}function gotoRight(row,cell,posX){if(cell>=columns.length){return null}do{cell+=getColspan(row,cell)}while(cell<columns.length&&!canCellBeActive(row,cell));if(cell<columns.length){return{row:row,cell:cell,posX:cell}}return null}function gotoLeft(row,cell,posX){if(cell<=0){return null}var firstFocusableCell=findFirstFocusableCell(row);if(firstFocusableCell===null||firstFocusableCell>=cell){return null}var prev={row:row,cell:firstFocusableCell,posX:firstFocusableCell};var pos;while(true){pos=gotoRight(prev.row,prev.cell,prev.posX);if(!pos){return null}if(pos.cell>=cell){return prev}prev=pos}}function gotoDown(row,cell,posX){var prevCell;while(true){if(++row>=getDataLength()+(options.enableAddRow?1:0)){return null}prevCell=cell=0;while(cell<=posX){prevCell=cell;cell+=getColspan(row,cell)}if(canCellBeActive(row,prevCell)){return{row:row,cell:prevCell,posX:posX}}}}function gotoUp(row,cell,posX){var prevCell;while(true){if(--row<0){return null}prevCell=cell=0;while(cell<=posX){prevCell=cell;cell+=getColspan(row,cell)}if(canCellBeActive(row,prevCell)){return{row:row,cell:prevCell,posX:posX}}}}function gotoNext(row,cell,posX){var pos=gotoRight(row,cell,posX);if(pos){return pos}var firstFocusableCell=null;while(++row<getDataLength()+(options.enableAddRow?1:0)){firstFocusableCell=findFirstFocusableCell(row);if(firstFocusableCell!==null){return{row:row,cell:firstFocusableCell,posX:firstFocusableCell}}}return null}function gotoPrev(row,cell,posX){var pos;var lastSelectableCell;while(!pos){pos=gotoLeft(row,cell,posX);if(pos){break}if(--row<0){return null}cell=0;lastSelectableCell=findLastFocusableCell(row);if(lastSelectableCell!==null){pos={row:row,cell:lastSelectableCell,posX:lastSelectableCell}}}return pos}function navigateRight(){navigate("right")}function navigateLeft(){navigate("left")}function navigateDown(){navigate("down")}function navigateUp(){navigate("up")}function navigateNext(){navigate("next")}function navigatePrev(){navigate("prev")}function navigate(dir){if(!activeCellNode||!options.enableCellNavigation){return}if(!getEditorLock().commitCurrentEdit()){return}var stepFunctions={up:gotoUp,down:gotoDown,left:gotoLeft,right:gotoRight,prev:gotoPrev,next:gotoNext};var stepFn=stepFunctions[dir];var pos=stepFn(activeRow,activeCell,activePosX);if(pos){var isAddNewRow=(pos.row==getDataLength());scrollRowIntoView(pos.row,!isAddNewRow);setActiveCellInternal(getCellNode(pos.row,pos.cell),isAddNewRow||options.autoEdit);activePosX=pos.posX}}function getCellNode(row,cell){if(rowsCache[row]){var cells=$(rowsCache[row]).children();var nodeCell;for(var i=0;i<cells.length;i++){nodeCell=getCellFromNode(cells[i]);if(nodeCell===cell){return cells[i]}else{if(nodeCell>cell){return null}}}}return null}function setActiveCell(row,cell){if(row>getDataLength()||row<0||cell>=columns.length||cell<0){return}if(!options.enableCellNavigation){return}scrollRowIntoView(row,false);setActiveCellInternal(getCellNode(row,cell),false)}function canCellBeActive(row,cell){if(!options.enableCellNavigation||row>=getDataLength()+(options.enableAddRow?1:0)||row<0||cell>=columns.length||cell<0){return false}var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);if(rowMetadata&&typeof rowMetadata.focusable==="boolean"){return rowMetadata.focusable}var columnMetadata=rowMetadata&&rowMetadata.columns;if(columnMetadata&&columnMetadata[columns[cell].id]&&typeof columnMetadata[columns[cell].id].focusable==="boolean"){return columnMetadata[columns[cell].id].focusable}if(columnMetadata&&columnMetadata[cell]&&typeof columnMetadata[cell].focusable==="boolean"){return columnMetadata[cell].focusable}if(typeof columns[cell].focusable==="boolean"){return columns[cell].focusable}return true}function canCellBeSelected(row,cell){if(row>=getDataLength()||row<0||cell>=columns.length||cell<0){return false}var rowMetadata=data.getItemMetadata&&data.getItemMetadata(row);if(rowMetadata&&typeof rowMetadata.selectable==="boolean"){return rowMetadata.selectable}var columnMetadata=rowMetadata&&rowMetadata.columns&&(rowMetadata.columns[columns[cell].id]||rowMetadata.columns[cell]);if(columnMetadata&&typeof columnMetadata.selectable==="boolean"){return columnMetadata.selectable}if(typeof columns[cell].selectable==="boolean"){return columns[cell].selectable}return true}function gotoCell(row,cell,forceEdit){if(!canCellBeActive(row,cell)){return}if(!getEditorLock().commitCurrentEdit()){return}scrollRowIntoView(row,false);var newCell=getCellNode(row,cell);setActiveCellInternal(newCell,forceEdit||(row===getDataLength())||options.autoEdit);if(!currentEditor){setFocus()}}function commitCurrentEdit(){var item=getDataItem(activeRow);var column=columns[activeCell];if(currentEditor){if(currentEditor.isValueChanged()){var validationResults=currentEditor.validate();if(validationResults.valid){if(activeRow<getDataLength()){var editCommand={row:activeRow,cell:activeCell,editor:currentEditor,serializedValue:currentEditor.serializeValue(),prevSerializedValue:serializedEditorValue,execute:function(){this.editor.applyValue(item,this.serializedValue);updateRow(this.row)},undo:function(){this.editor.applyValue(item,this.prevSerializedValue);updateRow(this.row)}};if(options.editCommandHandler){makeActiveCellNormal();options.editCommandHandler(item,column,editCommand)}else{editCommand.execute();makeActiveCellNormal()}trigger(self.onCellChange,{row:activeRow,cell:activeCell,item:item})}else{var newItem={};currentEditor.applyValue(newItem,currentEditor.serializeValue());makeActiveCellNormal();trigger(self.onAddNewRow,{item:newItem,column:column})}return !getEditorLock().isActive()}else{$(activeCellNode).addClass("invalid");$(activeCellNode).stop(true,true).effect("highlight",{color:"red"},300);trigger(self.onValidationError,{editor:currentEditor,cellNode:activeCellNode,validationResults:validationResults,row:activeRow,cell:activeCell,column:column});currentEditor.focus();return false}}makeActiveCellNormal()}return true}function cancelCurrentEdit(){makeActiveCellNormal();return true}function rowsToRanges(rows){var ranges=[];var lastCell=columns.length-1;for(var i=0;i<rows.length;i++){ranges.push(new Slick.Range(rows[i],0,rows[i],lastCell))}return ranges}function getSelectedRows(){if(!selectionModel){throw"Selection model is not set"}return selectedRows}function setSelectedRows(rows){if(!selectionModel){throw"Selection model is not set"}selectionModel.setSelectedRanges(rowsToRanges(rows))}this.debug=function(){var s="";s+=("\ncounter_rows_rendered: "+counter_rows_rendered);s+=("\ncounter_rows_removed: "+counter_rows_removed);s+=("\nrenderedRows: "+renderedRows);s+=("\nnumVisibleRows: "+numVisibleRows);s+=("\nmaxSupportedCssHeight: "+maxSupportedCssHeight);s+=("\nn(umber of pages): "+n);s+=("\n(current) page: "+page);s+=("\npage height (ph): "+ph);s+=("\nscrollDir: "+scrollDir);alert(s)};this.eval=function(expr){return eval(expr)};$.extend(this,{slickGridVersion:"2.0a1",onScroll:new Slick.Event(),onSort:new Slick.Event(),onHeaderContextMenu:new Slick.Event(),onHeaderClick:new Slick.Event(),onMouseEnter:new Slick.Event(),onMouseLeave:new Slick.Event(),onClick:new Slick.Event(),onDblClick:new Slick.Event(),onContextMenu:new Slick.Event(),onKeyDown:new Slick.Event(),onAddNewRow:new Slick.Event(),onValidationError:new Slick.Event(),onViewportChanged:new Slick.Event(),onColumnsReordered:new Slick.Event(),onColumnsResized:new Slick.Event(),onCellChange:new Slick.Event(),onBeforeEditCell:new Slick.Event(),onBeforeCellEditorDestroy:new Slick.Event(),onBeforeDestroy:new Slick.Event(),onActiveCellChanged:new Slick.Event(),onActiveCellPositionChanged:new Slick.Event(),onDragInit:new Slick.Event(),onDragStart:new Slick.Event(),onDrag:new Slick.Event(),onDragEnd:new Slick.Event(),onSelectedRowsChanged:new Slick.Event(),registerPlugin:registerPlugin,unregisterPlugin:unregisterPlugin,getColumns:getColumns,setColumns:setColumns,getColumnIndex:getColumnIndex,updateColumnHeader:updateColumnHeader,setSortColumn:setSortColumn,autosizeColumns:autosizeColumns,getOptions:getOptions,setOptions:setOptions,getData:getData,getDataLength:getDataLength,getDataItem:getDataItem,setData:setData,getSelectionModel:getSelectionModel,setSelectionModel:setSelectionModel,getSelectedRows:getSelectedRows,setSelectedRows:setSelectedRows,render:render,invalidate:invalidate,invalidateRow:invalidateRow,invalidateRows:invalidateRows,invalidateAllRows:invalidateAllRows,updateCell:updateCell,updateRow:updateRow,getViewport:getVisibleRange,resizeCanvas:resizeCanvas,updateRowCount:updateRowCount,scrollRowIntoView:scrollRowIntoView,getCanvasNode:getCanvasNode,getCellFromPoint:getCellFromPoint,getCellFromEvent:getCellFromEvent,getActiveCell:getActiveCell,setActiveCell:setActiveCell,getActiveCellNode:getActiveCellNode,getActiveCellPosition:getActiveCellPosition,resetActiveCell:resetActiveCell,editActiveCell:makeActiveCellEditable,getCellEditor:getCellEditor,getCellNode:getCellNode,getCellNodeBox:getCellNodeBox,canCellBeSelected:canCellBeSelected,canCellBeActive:canCellBeActive,navigatePrev:navigatePrev,navigateNext:navigateNext,navigateUp:navigateUp,navigateDown:navigateDown,navigateLeft:navigateLeft,navigateRight:navigateRight,gotoCell:gotoCell,getTopPanel:getTopPanel,showTopPanel:showTopPanel,hideTopPanel:hideTopPanel,showHeaderRowColumns:showHeaderRowColumns,hideHeaderRowColumns:hideHeaderRowColumns,getHeaderRow:getHeaderRow,getHeaderRowColumn:getHeaderRowColumn,getGridPosition:getGridPosition,flashCell:flashCell,addCellCssStyles:addCellCssStyles,setCellCssStyles:setCellCssStyles,removeCellCssStyles:removeCellCssStyles,destroy:destroy,getEditorLock:getEditorLock,getEditController:getEditController});init()}}(jQuery));function writeParallelCoordinateHtml(a,b){var c=' <div id="nav"><span style="font-size: 25px;float: left;padding: 20px;color: white;">'+b+'</span><div class="widget right toggle"> <input type="range" min="0" max="1" value="0.8" step="0.01" name="power" list="powers" id="line_opacity"></input> <br/> Opacity: <span id="opacity_level">80%</span> </div> <div><a href="#" id="shadows" class="right toggle">Shadows</a></div> <div><a href="#" id="inverted" class="right toggle">Dark</a></div> <div><a href="#" id="no_ticks" class="right toggle">Hide Ticks</a></div> </div> <div id="main"> <div class="widgets"> <div id="totals" class="widget right">Total Selected<br/></div> <div id="pie" class="widget right">Group Breakdown<br/></div> <a href="#" id="export_selected" class="button_parallel green filter_control">Export</a> <a href="#" id="remove_selected" class="button_parallel red filter_control">Remove</a> <a href="#" id="keep_selected" class="button_parallel green filter_control">Keep</a> <div id="pager" class="xinfo"></div> <div id="legend"> </div> </div> <div id="parallel"></div> <div id="myGrid"></div> </div>';c='<div id="nav"> <span style="font-size: 25px;float: left;padding: 20px;color: white;">'+b+' </span> <div class="widget right toggle"> <input type="range" min="0" max="1" value="0.8" step="0.01" name="power" list="powers" id="line_opacity"> </input> <br/> Opacity: <span id="opacity_level">80% </span> </div> <div> <a href="#" id="shadows" class="right toggle">Shadows </a> </div> <div> <a href="#" id="inverted" class="right toggle">Dark </a> </div> <div> <a href="#" id="no_ticks" class="right toggle">Hide Ticks </a> </div> <div class="widgets"> <div id="totals" class="widget right"><div class=widgetTitle>Total Selected :</div></div> <div id="pie" class="widget right"><div class=widgetTitle>Group Breakdown:</div> </div> <a href="#" id="export_selected" class="button_parallel green filter_control">Export </a> <a href="#" id="remove_selected" class="button_parallel red filter_control">Remove </a> <a href="#" id="keep_selected" class="button_parallel green filter_control">Keep </a> <div id="pager" class="xinfo"> </div> </div> </div> <div id="main"> <div id="legend"> </div> <div id="parallel"> </div> <div id="myGrid"> </div> </div>';$("div#"+a).html(c);$("div#"+a).css("height","100%");$("div#"+a).css("width","100%")}function kpiFormatter(e,b,d,c,a){if(c.format&&c.format.length>0){return formatData(d,c.format,0)}else{return d}}function drawParallelCoordinateChart(y,h,f,x,n,l,u,w,q,p,k){writeParallelCoordinateHtml(h,f);SetOptions();function v(G){var E={},D=[];for(var F=0,j=G.length;F<j;++F){if(E.hasOwnProperty(G[F])){continue}D.push(G[F]);E[G[F]]=1}return D}var g=new Filter();var A=new Selector();mydataset=parse2DArray(y);g.set({data:mydataset});var d=_(mydataset[0]).keys();var B=[];var t=[];for(var s=0,r=0;s<y[0].length;s++){if(s<l){t[s]=""}else{t[s]=w[r++]}}for(var e=0;e<_(mydataset).size();e++){B[e]=_(mydataset[e]).values()[l-1]}B=v(B.sort());var m=new Array();var s=0;_(B).each(function(i){m[i]=G_seriesColors[s++]});_(B).each(function(i){$("#legend").append("<div class='item'><div class='color' style='background: "+m[i]+"';></div><div class='key'>"+i+"</div></div>")});var b=parallel(g,m,l,d,B,w);var o=piegroups(mydataset,B,m,d[l-1]);var C=pietotals(["in","out"],[_(mydataset).size(),0]);var a=new grid({model:g,selector:A,width:$("#main").width(),columns:d,format:t});var c=$(window).height()-60-0-50-300;if(c<120){c=120}if(c>340){c=340}$("#parallel").css({height:c+"px",width:x+"px"});a.update();b.render();g.bind("change:filtered",function(){var E=g.get("data");var D=g.get("filtered");var F=_(E).size();var i=_(D).size();o.update(D);C.update([i,F-i]);var j=_([8/Math.pow(i,0.37),100]).min();$("#line_opacity").val(j).change()});A.bind("change:selected",function(){var i=this.get("selected");b.highlight(i)});$("#remove_selected").click(function(){g.outliers();b.update(g.get("data"));b.render();g.trigger("change:filtered");return false});$("#keep_selected").click(function(){g.inliers();b.update(g.get("data"));b.render();g.trigger("change:filtered");return false});$("#export_selected").click(function(){var E=g.get("filtered");var D=_.keys(E[0]);var i=_(D).map(function(G){return'"'+z(G)+'"'}).join(",");_(E).each(function(G){i+="\n";i+=_(D).map(function(H){var I=G[H];if(_.isString(I)){return'"'+z(I)+'"'}if(_.isNumber(I)){return I}if(_.isNull(I)){return""}}).join(",")});var j="data:application/octet-stream,"+encodeURIComponent(i);var F=window.open(j,"Nutrient CSV");F.focus();return false});$("#line_opacity").change(function(){var i=$(this).val();$("#parallel .foreground path").css("stroke-opacity",i.toString());$("#opacity_level").html((Math.round(i*10000)/100)+"%")});$("#parallel").resize(function(){b.render();var i=$("#line_opacity").val();$("#parallel .foreground path").css("stroke-opacity",i.toString())});$("#parallel").resizable({handles:"s",resize:function(){return false}});$("#myGrid").resizable({handles:"s"});function z(i){return(i+"").replace(/\"/g,'""').replace(/\0/g,"\\0")}};