/* * datawrapper / vis / data-table v1.5.0 * generated on 2014-01-20T11:54:31+01:00 */ (function(){var root=this,dw={};if(typeof exports!=='undefined'){if(typeof module!=='undefined'&&module.exports){exports=module.exports=dw;} exports.dw=dw;}else{window.dw=dw;} dw.dataset=function(columns,opts){var columnsByName={},origColumns=columns.slice(0);_.each(columns,function(col){uniqueName(col);columnsByName[col.name()]=col;});opts=_.extend(opts,{});function uniqueName(col){var origColName=col.name(),colName=origColName,appendix=1;while(columnsByName.hasOwnProperty(colName)){colName=origColName+'.'+(appendix++);} if(colName!=origColName)col.name(colName);} var dataset={columns:function(){return columns;},column:function(x){if(_.isString(x)){if(columnsByName[x]!==undefined)return columnsByName[x];throw'No column found with that name: "'+x+'"';} if(columns[x]!==undefined)return columns[x];throw'No column found with that index: '+x;},numColumns:function(){return columns.length;},numRows:function(){return columns[0].length;},eachColumn:function(func){_.each(columns,func);},hasColumn:function(x){return(_.isString(x)?columnsByName[x]:columns[x])!==undefined;},indexOf:function(column_name){if(!dataset.hasColumn(column_name))return-1;return _.indexOf(columns,columnsByName[column_name]);},toCSV:function(){var csv="",sep=",",quote="\"";_.each(columns,function(col,i){var t=col.title();if(t.indexOf(quote)>-1)t.replace(quote,'\\'+quote);if(t.indexOf(sep)>-1)t=quote+t+quote;csv+=(i>0?sep:'')+t;});_.each(_.range(dataset.numRows()),function(row){csv+='\n';_.each(columns,function(col,i){var t=''+(col.type()=='date'?col.raw(row):col.val(row));if(t.indexOf(quote)>-1)t.replace(quote,'\\'+quote);if(t.indexOf(sep)>-1)t=quote+t+quote;csv+=(i>0?sep:'')+t;});});return csv;},filterColumns:function(ignore){columns=_.filter(columns,function(c){return!ignore[c.name()];});_.each(ignore,function(ign,key){if(ign&&columnsByName[key])delete columnsByName[key];});return dataset;},eachRow:function(func){var i;for(i=0;irange[1])range[1]=v;});range[0]=type.fromNum(range[0]);range[1]=type.fromNum(range[1]);} return range;},total:function(){if(!type.toNum)return false;if(!total){total=0;column.each(function(v){total+=type.toNum(v);});total=type.fromNum(total);} return total;},filterRows:function(r){rows=[];if(arguments.length){_.each(r,function(i){rows.push(origRows[i]);});}else{rows=origRows.slice(0);} column.length=rows.length;range=total=false;return column;},toString:function(){return name+' ('+type.name()+')';},indexOf:function(val){return _.find(_.range(rows.length),function(i){return column.val(i)==val;});}};return column;};dw.column.types={};dw.column.types.text=function(){return{parse:_.identity,errors:function(){return 0;},name:function(){return'text';},formatter:function(){return _.identity;},isValid:function(){return true;},format:function(){}};};dw.column.types.number=function(sample){function signDigitsDecimalPlaces(num,sig){if(num===0)return 0;return Math.round(sig-Math.ceil(Math.log(Math.abs(num))/Math.LN10));} var format,errors=0,knownFormats={'-.':/^ *-?[0-9]*(\.[0-9]+)?(e[\+\-][0-9]+) *$/,'-,':/^ *-?[0-9]*(,[0-9]+)? *$/,',.':/^ *-?[0-9]{1,3}(,[0-9]{3})*(\.[0-9]+)? *$/,'.,':/^ *-?[0-9]{1,3}(\.[0-9]{3})*(,[0-9]+)? *$/,' .':/^ *-?[0-9]{1,3}( [0-9]{3})*(\.[0-9]+)? *$/,' ,':/^ *-?[0-9]{1,3}( [0-9]{3})*(,[0-9]+)? *$/,' .':/^ *-?[0-9]{1,3}( [0-9]{3})*(\.[0-9]+)? *$/,' ,':/^ *-?[0-9]{1,3}( [0-9]{3})*(,[0-9]+)? *$/},formatLabels={'-.':'1234.56','-,':'1234,56',',.':'1,234.56','.,':'1.234,56',' .':'1 234.56',' ,':'1 234,56',' .':'1 234.56',' ,':'1 234,56'},naStrings={'na':1,'n/a':1,'-':1,':':1};var matches={},bestMatch=['-.',0];sample=sample||[];_.each(sample,function(n){_.each(knownFormats,function(regex,fmt){if(matches[fmt]===undefined)matches[fmt]=0;if(regex.test(n)){matches[fmt]+=1;if(matches[fmt]>bestMatch[1]){bestMatch[0]=fmt;bestMatch[1]=matches[fmt];}}});});format=bestMatch[0];var type={parse:function(raw){if(_.isNumber(raw)||_.isUndefined(raw)||_.isNull(raw))return raw;var number=raw;if(format[0]!='-'){number=number.replace(format[0],'');} if(format[1]!='.'){number=number.replace(format[1],'.');} if(isNaN(number)||number===""){if(!naStrings[number.toLowerCase()]&&number!=="")errors++;return raw;} return Number(number);},toNum:function(i){return i;},fromNum:function(i){return i;},errors:function(){return errors;},name:function(){return'number';},formatter:function(config){var format=config['number-format']||'-',div=Number(config['number-divisor']||0),append=(config['number-append']||'').replace(/ /g,'\u00A0'),prepend=(config['number-prepend']||'').replace(/ /g,'\u00A0');return function(val,full,round){if(isNaN(val))return val;var _fmt=format;if(div!==0&&_fmt=='-')_fmt='n1';if(div!==0)val=Number(val)/Math.pow(10,div);if(_fmt.substr(0,1)=='s'){var sig=+_fmt.substr(1);_fmt='n'+Math.max(0,signDigitsDecimalPlaces(val,sig));} if(round)_fmt='n0';val=Globalize.format(val,_fmt!='-'?_fmt:null);return full?prepend+val+append:val;};},isValid:function(val){return val===""||naStrings[String(val).toLowerCase()]||_.isNumber(type.parse(val));},ambiguousFormats:function(){var candidates=[];_.each(matches,function(cnt,fmt){if(cnt==bestMatch[1]){candidates.push([fmt,formatLabels[fmt]]);}});return candidates;},format:function(fmt){if(arguments.length){format=fmt;return type;} return format;}};return type;};dw.column.types.date=function(sample){var format,errors=0,matches={},bestMatch=['',0],knownFormats={'YYYY':{test:/^ *(?:1[7-9]|20)\d{2} *$/,parse:/^ *(\d{4}) *$/,precision:'year'},'YYYY-H':{test:/^ *[12]\d{3}[ \-\/]?[hH][12] *$/,parse:/^ *(\d{4})[ \-\/]?[hH]([12]) *$/,precision:'half'},'H-YYYY':{test:/^ *[hH][12][ \-\/][12]\d{3} *$/,parse:/^ *[hH]([12])[ \-\/](\d{4}) *$/,precision:'half'},'YYYY-Q':{test:/^ *[12]\d{3}[ \-\/]?[qQ][1234] *$/,parse:/^ *(\d{4})[ \-\/]?[qQ]([1234]) *$/,precision:'quarter'},'Q-YYYY':{test:/^ *[qQ]([1234])[ \-\/][12]\d{3} *$/,parse:/^ *[qQ]([1234])[ \-\/](\d{4}) *$/,precision:'quarter'},'YYYY-M':{test:/^ *([12]\d{3}) ?[ \-\/\.mM](0?[1-9]|1[0-2]) *$/,parse:/^ *(\d{4}) ?[ \-\/\.mM](0?[1-9]|1[0-2]) *$/,precision:'month'},'M-YYYY':{test:/^ *(0?[1-9]|1[0-2]) ?[ \-\/\.][12]\d{3} *$/,parse:/^ *(0?[1-9]|1[0-2]) ?[ \-\/\.](\d{4}) *$/,precision:'month'},'YYYY-WW':{test:/^ *[12]\d{3}[ -]?[wW](0?[1-9]|[1-4]\d|5[0-3]) *$/,parse:/^ *(\d{4})[ -]?[wW](0?[1-9]|[1-4]\d|5[0-3]) *$/,precision:'week'},'MM/DD/YYYY':{test:/^ *(0?[1-9]|1[0-2])([\-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2([12]\d{3})$/,parse:/^ *(0?[1-9]|1[0-2])([\-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2(\d{4})$/,precision:'day'},'DD/MM/YYYY':{test:/^ *(0?[1-9]|[1-2]\d|3[01])([\-\.\/ ?])(0?[1-9]|1[0-2])\2([12]\d{3})$/,parse:/^ *(0?[1-9]|[1-2]\d|3[01])([\-\.\/ ?])(0?[1-9]|1[0-2])\2(\d{4})$/,precision:'day'},'YYYY-MM-DD':{test:/^ *([12]\d{3})([\-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01])$/,parse:/^ *(\d{4})([\-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01])$/,precision:'day'},'YYYY-WW-d':{test:/^ *[12]\d{3}[ \-]?[wW](0?[1-9]|[1-4]\d|5[0-3])(?:[ \-]?[1-7]) *$/,parse:/^ *(\d{4})[ \-]?[wW](0?[1-9]|[1-4]\d|5[0-3])(?:[ \-]?([1-7])) *$/,precision:'day'},'MM/DD/YYYY HH:MM':{test:/^ *(0?[1-9]|1[0-2])([-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2([12]\d{3}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,parse:/^ *(0?[1-9]|1[0-2])([-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2(\d{4}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,precision:'day-minutes'},'DD.MM.YYYY HH:MM':{test:/^ *(0?[1-9]|[1-2]\d|3[01])([-\.\/ ?])(0?[1-9]|1[0-2])\2([12]\d{3}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,parse:/^ *(0?[1-9]|[1-2]\d|3[01])([-\.\/ ?])(0?[1-9]|1[0-2])\2(\d{4}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,precision:'day-minutes'},'YYYY-MM-DD HH:MM':{test:/^ *([12]\d{3})([-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01]) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,parse:/^ *(\d{4})([-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01]) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d) *$/,precision:'day-minutes'},'MM/DD/YYYY HH:MM:SS':{test:/^ *(0?[1-9]|1[0-2])([-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2([12]\d{3}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,parse:/^ *(0?[1-9]|1[0-2])([-\/] ?)(0?[1-9]|[1-2]\d|3[01])\2(\d{4}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,precision:'day-seconds'},'DD.MM.YYYY HH:MM:SS':{test:/^ *(0?[1-9]|[1-2]\d|3[01])([-\.\/ ?])(0?[1-9]|1[0-2])\2([12]\d{3}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,parse:/^ *(0?[1-9]|[1-2]\d|3[01])([-\.\/ ?])(0?[1-9]|1[0-2])\2(\d{4}) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,precision:'day-seconds'},'YYYY-MM-DD HH:MM:SS':{test:/^ *([12]\d{3})([-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01]) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,parse:/^ *(\d{4})([-\/\. ?])(0?[1-9]|1[0-2])\2(0?[1-9]|[1-2]\d|3[01]) *[ \-\|] *(0?\d|1\d|2[0-3]):([0-5]\d)(?::([0-5]\d))? *$/,precision:'day-seconds'}};function test(str,key){var fmt=knownFormats[key];if(_.isRegExp(fmt.test)){return fmt.test.test(str);}else{return fmt.test(str,key);}} function parse(str,key){var fmt=knownFormats[key];if(_.isRegExp(fmt.parse)){return str.match(fmt.parse);}else{return fmt.parse(str,key);}} sample=sample||[];_.each(knownFormats,function(format,key){_.each(sample,function(n){if(matches[key]===undefined)matches[key]=0;if(test(n,key)){matches[key]+=1;if(matches[key]>bestMatch[1]){bestMatch[0]=key;bestMatch[1]=matches[key];}}});});format=bestMatch[0];function dateFromIsoWeek(year,week,day){var d=new Date(Date.UTC(year,0,3));d.setUTCDate(3-d.getUTCDay()+(week-1)*7+parseInt(day,10));return d;} function dateToIsoWeek(date){var d=date.getUTCDay(),t=new Date(date.valueOf());t.setDate(t.getDate()-((d+6)%7)+3);var iso_year=t.getUTCFullYear(),w=Math.floor((t.getTime()-new Date(iso_year,0,1,-6))/864e5);return[iso_year,1+Math.floor(w/7),d>0?d:7];} var type={parse:function(raw){if(_.isDate(raw)||_.isUndefined(raw))return raw;if(!format||!_.isString(raw)){errors++;return raw;} var m=parse(raw,format);if(!m){errors++;return raw;}else{if(!test(raw,format))errors++;} switch(format){case'YYYY':return new Date(m[1],0,1);case'YYYY-H':return new Date(m[1],(m[2]-1)*6,1);case'H-YYYY':return new Date(m[2],(m[1]-1)*6,1);case'YYYY-Q':return new Date(m[1],(m[2]-1)*3,1);case'Q-YYYY':return new Date(m[2],(m[1]-1)*3,1);case'YYYY-M':return new Date(m[1],(m[2]-1),1);case'M-YYYY':return new Date(m[2],(m[1]-1),1);case'YYYY-WW':return dateFromIsoWeek(m[1],m[2],1);case'YYYY-WW-d':return dateFromIsoWeek(m[1],m[2],m[3]);case'YYYY-MM-DD':return new Date(m[1],(m[3]-1),m[4]);case'DD/MM/YYYY':return new Date(m[4],(m[3]-1),m[1]);case'MM/DD/YYYY':return new Date(m[4],(m[1]-1),m[3]);case'YYYY-MM-DD HH:MM':return new Date(m[1],(m[3]-1),m[4],m[5]||0,m[6]||0,0);case'DD.MM.YYYY HH:MM':return new Date(m[4],(m[3]-1),m[1],m[5]||0,m[6]||0,0);case'MM/DD/YYYY HH:MM':return new Date(m[4],(m[1]-1),m[3],m[5]||0,m[6]||0,0);case'YYYY-MM-DD HH:MM:SS':return new Date(m[1],(m[3]-1),m[4],m[5]||0,m[6]||0,m[7]||0);case'DD.MM.YYYY HH:MM:SS':return new Date(m[4],(m[3]-1),m[1],m[5]||0,m[6]||0,m[7]||0);case'MM/DD/YYYY HH:MM:SS':return new Date(m[4],(m[1]-1),m[3],m[5]||0,m[6]||0,m[7]||0);} errors++;return raw;},toNum:function(d){return d.getTime();},fromNum:function(i){return new Date(i);},errors:function(){return errors;},name:function(){return'date';},format:function(fmt){if(arguments.length){format=fmt;return type;} return format;},precision:function(){return knownFormats[format].precision;},formatter:function(config){if(!format)return _.identity;var M_pattern=Globalize.culture().calendar.patterns.M.replace('MMMM','MMM');switch(knownFormats[format].precision){case'year':return function(d){return!_.isDate(d)?d:d.getFullYear();};case'half':return function(d){return!_.isDate(d)?d:d.getFullYear()+' H'+(d.getMonth()/6+1);};case'quarter':return function(d){return!_.isDate(d)?d:d.getFullYear()+' Q'+(d.getMonth()/3+1);};case'month':return function(d){return!_.isDate(d)?d:Globalize.format(d,'MMM yy');};case'week':return function(d){return!_.isDate(d)?d:dateToIsoWeek(d).slice(0,2).join(' W');};case'day':return function(d,verbose){return!_.isDate(d)?d:Globalize.format(d,verbose?'D':'d');};case'day-minutes':return function(d){return!_.isDate(d)?d:Globalize.format(d,M_pattern).replace(' ',' ')+' - '+Globalize.format(d,'t').replace(' ',' ');};case'day-seconds':return function(d){return!_.isDate(d)?d:Globalize.format(d,'T').replace(' ',' ');};}},isValid:function(val){return _.isDate(type.parse(val));},ambiguousFormats:function(){var candidates=[];_.each(matches,function(cnt,fmt){if(cnt==bestMatch[1]){candidates.push([fmt,fmt]);}});return candidates;}};return type;};dw.datasource={};dw.datasource.delimited=function(opts){function loadAndParseCsv(){if(opts.url){return $.ajax({url:opts.url,method:'GET',dataType:"text"}).then(function(raw){return new DelimitedParser(opts).parse(raw);});}else if(opts.csv){var dfd=$.Deferred(),parsed=dfd.then(function(raw){return new DelimitedParser(opts).parse(raw);});dfd.resolve(opts.csv);return parsed;} throw'you need to provide either an URL or CSV data.';} var delimited={dataset:loadAndParseCsv};return delimited;};var DelimitedParser=function(opts){opts=_.extend({delimiter:"auto",quoteChar:"\"",skipRows:0,emptyValue:null,transpose:false,firstRowIsHeader:true},opts);this.__delimiterPatterns=getDelimiterPatterns(opts.delimiter,opts.quoteChar);this.opts=opts;};function getDelimiterPatterns(delimiter,quoteChar){return new RegExp(("(\\"+delimiter+"|\\r?\\n|\\r|^)"+"(?:"+quoteChar+"([^"+quoteChar+"]*(?:"+quoteChar+"\"[^"+quoteChar+"]*)*)"+quoteChar+"|"+"([^"+quoteChar+"\\"+delimiter+"\\r\\n]*))"),"gi");} _.extend(DelimitedParser.prototype,{parse:function(data){var me=this,opts=this.opts;me.__rawData=data;if(opts.delimiter=='auto'){opts.delimiter=me.guessDelimiter(data,opts.skipRows);me.__delimiterPatterns=getDelimiterPatterns(opts.delimiter,opts.quoteChar);} var columns=[],closure=opts.delimiter!='|'?'|':'#',arrData;data=closure+data.replace(/\s+$/g,'')+closure;function parseCSV(delimiterPattern,strData,strDelimiter){strDelimiter=(strDelimiter||",");var arrData=[[]];var arrMatches=null,strMatchedValue;while(arrMatches=delimiterPattern.exec(strData)){var strMatchedDelimiter=arrMatches[1];if(strMatchedDelimiter.length&&(strMatchedDelimiter!=strDelimiter)){arrData.push([]);} if(arrMatches[2]){strMatchedValue=arrMatches[2].replace(new RegExp("\"\"","g"),"\"");}else{strMatchedValue=arrMatches[3];} arrData[arrData.length-1].push(strMatchedValue);} if(arrData[0][0].substr(0,1)==closure){arrData[0][0]=arrData[0][0].substr(1);} var p=arrData.length-1,q=arrData[p].length-1,r=arrData[p][q].length-1;if(arrData[p][q].substr(r)==closure){arrData[p][q]=arrData[p][q].substr(0,r);} return(arrData);} function transpose(arrMatrix){var a=arrMatrix,w=a.length?a.length:0,h=a[0]instanceof Array?a[0].length:0;if(h===0||w===0){return[];} var i,j,t=[];for(i=0;imaxMatchCount){maxMatchCount=c;k=i;}});return delimiters[k];}});dw.utils={minMax:function(columns){var minmax=[Number.MAX_VALUE,-Number.MAX_VALUE];_.each(columns,function(column){minmax[0]=Math.min(minmax[0],column.range()[0]);minmax[1]=Math.max(minmax[1],column.range()[1]);});return minmax;},dateFormat:function(daysDelta){var new_month=true,last_date=false;function timeFormat(formats){return function(date){new_month=!last_date||date.getMonth()!=last_date.getMonth();last_date=date;var i=formats.length-1,f=formats[i];while(!f[1](date))f=formats[--i];return f[0](date);};} function time_fmt(fmt){var format=function(date){var r=Globalize.format(date,fmt);return fmt!='htt'?r:r.toLowerCase();};return format;} var fmt=(function(lang){return{date:lang=='de'?"dd.":"dd",hour:lang!='en'?"H:00":"htt",minute:lang=='de'?"H:mm":'h:mm',mm:lang=='de'?'d.M.':'MM/dd',mmm:lang=='de'?'d.MMM':'MMM dd',mmmm:lang=='de'?'d. MMMM':'MMMM dd'};})(Globalize.culture().language);return timeFormat([[time_fmt("yyyy"),function(){return true;}],[time_fmt(daysDelta>70?"MMM":"MMM"),function(d){return d.getMonth()!==0;}],[time_fmt(fmt.date),function(d){return d.getDate()!=1;}],[time_fmt(daysDelta<7?fmt.mm:daysDelta>70?fmt.mmm:fmt.mmm),function(d){return d.getDate()!=1&&new_month;}],[time_fmt(fmt.hour),function(d){return d.getHours();}],[time_fmt(fmt.minute),function(d){return d.getMinutes();}],[time_fmt(":ss"),function(d){return d.getSeconds();}],[time_fmt(".fff"),function(d){return d.getMilliseconds();}]]);},longDateFormat:function(column){var me=this;return function(d){if(column.type()=='date'){switch(column.type(true).precision()){case'year':return d.getFullYear();case'quarter':return d.getFullYear()+' Q'+(d.getMonth()/3+1);case'month':return Globalize.format(d,'MMM yy');case'day':return Globalize.format(d,'MMM d');case'minute':return Globalize.format(d,'t');case'second':return Globalize.format(d,'T');}}else{return d;}};},columnNameColumn:function(columns){var names=_.map(columns,function(col){return col.title();});return dw.column('',names);},name:function(obj){return _.isFunction(obj.name)?obj.name():_.isString(obj.name)?obj.name:obj;},getMaxChartHeight:function(el){function margin(el,type){if($(el).css('margin-'+type)=='auto')return 0;return+$(el).css('margin-'+type).replace('px','');} var ch=0,bottom=0;$('body > *').each(function(i,el){var t=el.tagName.toLowerCase();if(t!='script'&&el.id!='chart'&&!$(el).hasClass('tooltip')&&!$(el).hasClass('qtip')&&!$(el).hasClass('container')&&!$(el).hasClass('noscript')){ch+=$(el).outerHeight(false);} ch+=Math.max(margin(el,'top'),bottom);bottom=margin(el,'bottom');});ch+=bottom;var mt=$('#chart').css('margin-top').replace('px',''),mb=$('#chart').css('margin-bottom').replace('px',''),maxH=$(window).height()-ch-8;if(!$.support.leadingWhitespace)maxH-=15;maxH-=$('body').css('padding-top').replace('px','');maxH-=$('body').css('padding-bottom').replace('px','');return maxH;},purifyHtml:function(input,allowed){var tags=/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi,commentsAndPhpTags=/|<\?(?:php)?[\s\S]*?\?>/gi,default_allowed="

",allowed_split={};if(allowed===undefined)allowed=default_allowed;allowed_split[allowed]=(((allowed||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join('');function purifyHtml(input,allowed){if(!_.isString(input)||input.indexOf("<")<0){return input;} if(allowed===undefined){allowed=default_allowed;} if(!allowed_split[allowed]){allowed_split[allowed]=(((allowed||"")+"").toLowerCase().match(/<[a-z][a-z0-9]*>/g)||[]).join('');} return input.replace(commentsAndPhpTags,'').replace(tags,function($0,$1){return allowed_split[allowed].indexOf('<'+$1.toLowerCase()+'>')>-1?$0:'';});} dw.utils.purifyHtml=purifyHtml;return purifyHtml(input,allowed);},significantDimension:function(values){var result=[],dimension=0,nonEqual=true,uniqValues=_.uniq(values),check,diff;if(uniqValues.length==1){return-1*Math.floor(Math.log(uniqValues[0])/Math.LN10);} if(_.uniq(_.map(uniqValues,round)).length==uniqValues.length){check=function(){return _.uniq(result).length==uniqValues.length;};diff=-1;}else{check=function(){return _.uniq(result).length0);if(max_iter<10){console.warn('maximum iteration reached',values,result,dimension);} if(diff<0)dimension+=2;else dimension--;function round(v){return dw.utils.round(v,dimension);} return dimension;},round:function(value,dimension){var base=Math.pow(10,dimension);return Math.round(value*base)/base;},smartRound:function(values,add_precision){var dim=dw.utils.significantDimension(values);dim+=add_precision||0;return _.map(values,function(v){return dw.utils.round(v,dim);});},nearest:function(array,value){var min_diff=Number.MAX_VALUE,min_diff_val;_.each(array,function(v){var d=Math.abs(v-value);if(d');column.each(function(val,i){var lbl=format(val);if(!lbl)return;select.append('');});select.change(function(evt){var cur=select.val();update(cur);});select.addClass('filter-ui filter-select');return select;};if(type=='buttons')f=function(vis){var div=$('
');div.addClass('filter-ui filter-links');column.each(function(val,i){var lbl=format(val);if(!lbl)return;var a=$(''+(_.isString(lbl)?$.trim(lbl):lbl)+'').data('row',i);div.append(a);});$('a',div).click(function(e){var a=$(e.target);e.preventDefault();if(a.hasClass('active'))return;$('a',div).removeClass('active');a.addClass('active');update(a.data('row'));});div.appendTo('body');var fy=$('a:first',div).offset().top,ly=$('a:last',div).offset().top;if(fy!=ly){div.remove();return getFilterUI('select')(vis);} return div;};if(type=='timescale')f=function(vis){var w=Math.min(vis.__w-30,Math.max(300,vis.__w*0.7)),timescale=d3.time.scale().domain([column.val(0),column.val(-1)]).range([0,w]),timesel=$('
').css({position:'relative',height:45,'margin-left':3}).addClass('filter-ui'),nticks=w/80,ticks=timescale.ticks(nticks),daysDelta=Math.round((column.val(-1).getTime()-column.val(0).getTime())/86400000),fmt=dw.utils.dateFormat(daysDelta),lfmt=column.type(true).formatter(),dots=timescale.ticks(w/8),lbl_x=function(i){return Math.max(-18,timescale(column.val(i))-40);};_.each(ticks,function(d){var s=$(''+fmt(d)+''),x=timescale(d)-40,lw=vis.labelWidth(fmt(d));if(40-lw*0.5+x<0)x=-40+0.5*lw;s.css({position:'absolute',top:0,width:80,left:x,'text-align':'center',opacity:0.55});timesel.append(s);});_.each(dots,function(d){if(d.getTime()column.val(-1).getTime())return;var s=$('');s.css({position:'absolute',bottom:19,width:1,height:'1ex','border-left':'1px solid #000','vertical-align':'bottom',left:Math.round(timescale(d))+0.5});if(!_.find(ticks,function(td){return d.getTime()==td.getTime();})){s.css({height:'0.6ex',opacity:0.5});} timesel.append(s);});var pointer=$('
').css({position:'absolute',width:20,bottom:2,left:timescale(column.val(active))-9,'text-align':'center'});timesel.append(pointer);var lbl=$('
').css({position:'absolute',width:80,top:0,left:lbl_x(active),'text-align':'center'}).data('last-txt',lfmt(column.val(active))).data('last-left',lbl_x(active));$('span',lbl).css({background:vis.theme().colors.background,'font-weight':'bold','padding':'0 1ex'}).html(lfmt(column.val(active)));timesel.append(lbl);$('
').css({position:'absolute',width:w+1,bottom:15,height:2,'border-bottom':'1px solid #000'}).appendTo(timesel);var bar=$('
').css({position:'absolute',left:0,width:w,height:40});timesel.append(bar);function nearest(rel_x){var x_date=timescale.invert(rel_x),min_dist=Number.MAX_VALUE,nearest_row=0;column.each(function(date,i){var dist=Math.abs(date.getTime()-x_date.getTime());if(dist0;},isHighlighted:function(obj){if(_.isUndefined(obj)===undefined)return false;var hl=this.get('metadata.visualize.highlighted-series'),obj_name=dw.utils.name(obj);return!_.isArray(hl)||hl.length===0||_.indexOf(hl,obj_name)>=0;},locale:function(_locale){if(arguments.length){locale=_locale;Globalize.culture(locale);return chart;} return locale;},metricPrefix:function(_metric_prefix){if(arguments.length){metric_prefix=_metric_prefix;return chart;} return metric_prefix;},formatValue:function(val,full,round){var format=chart.get('metadata.describe.number-format'),div=Number(chart.get('metadata.describe.number-divisor')),append=chart.get('metadata.describe.number-append','').replace(' ',' '),prepend=chart.get('metadata.describe.number-prepend','').replace(' ',' ');if(div!==0)val=Number(val)/Math.pow(10,div);if(format!='-'){if(round||val==Math.round(val))format=format.substr(0,1)+'0';val=Globalize.format(val,format);}else if(div!==0){val=val.toFixed(1);} return full?prepend+val+append:val;},render:function(container){if(!visualization||!theme||!dataset){throw'cannot render the chart!';} visualization.chart(chart);visualization.__init();var $cont=$(container);$cont.parent().addClass('vis-'+visualization.id).addClass('theme-'+theme.id);visualization.render($cont);},attributes:function(attrs){if(arguments.length){attributes=attrs;return chart;} return attributes;},onChange:change_callbacks.add,columnFormatter:function(column){var colFormat=chart.get('metadata.data.column-format',{});colFormat=colFormat[column.name()]||{};if(column.type()=='number'&&colFormat=='auto'){var mtrSuf=dw.utils.metricSuffix(chart.locale()),values=column.values(),dim=dw.utils.significantDimension(values),div=dim<-2?Math.round((dim*-1)/3)*3:dim>2?dim*-1:0;ndim=dw.utils.significantDimension(_.map(values,function(v){return v/Math.pow(10,div);}));colFormat={'number-divisor':div,'number-append':div?mtrSuf[div]||' × 10'+div+'':'','number-format':'n'+Math.max(0,ndim)};} return column.type(true).formatter(colFormat);}};function applyChanges(dataset){var changes=chart.get('metadata.data.changes',[]);var transpose=chart.get('metadata.data.transpose',false);_.each(changes,function(change){var row="row",column="column";if(transpose){row="column";column="row";} if(dataset.hasColumn(change[column])){if(change[row]===0){dataset.column(change[column]).title(change.value);} else{dataset.column(change[column]).raw(change[row]-1,change.value);}}});var columnFormats=chart.get('metadata.data.column-format',{});_.each(columnFormats,function(columnFormat,key){if(columnFormat.type&&dataset.hasColumn(key)){dataset.column(key).type(columnFormat.type);} if(columnFormat['input-format']&&dataset.hasColumn(key)){dataset.column(key).type(true).format(columnFormat['input-format']);}});return dataset;} return chart;};dw.visualization=(function(){var __vis={};var visualization=function(id){return new __vis[id]();};visualization.register=function(id){var parent=arguments.length==3?__vis[arguments[1]].prototype:dw.visualization.base,props=arguments[arguments.length-1],vis=__vis[id]=function(){};_.extend(vis.prototype,parent,{id:id},props);};return visualization;})();dw.visualization.base=(function(){}).prototype;_.extend(dw.visualization.base,{__init:function(){this.__renderedDfd=$.Deferred();if(window.parent&&window.parent['postMessage']){window.parent.postMessage('datawrapper:vis:init','*');} return this;},render:function(el){$(el).html('implement me!');},theme:function(theme){if(!arguments.length)return this.__theme;this.__theme=theme;var attr_properties=['horizontalGrid','verticalGrid','yAxis','xAxis'];_.each(attr_properties,function(prop){if(theme.hasOwnProperty(prop)){for(var key in theme[prop]){var lkey=key.replace(/([A-Z])/g,"-$1").toLowerCase();if(!theme[prop].hasOwnProperty(lkey)){theme[prop][lkey]=theme[prop][key];}}}});return this;},size:function(width,height){var me=this;if(!arguments.length)return[me.__w,me.__h];me.__w=width;me.__h=height;return me;},get:function(str,_default){return this.chart().get('metadata.visualize.'+str,_default);},notify:function(str){if(dw.backend&&_.isFunction(dw.backend.notify)){return dw.backend.notify(str);}else{if(window.parent&&window.parent['postMessage']){window.parent.postMessage('notify:'+str,'*');}else if(window['console']){console.log(str);}}},signature:function(){},translate:function(str){var locale=this.meta.locale,lang=this.lang;return locale[str]?locale[str][lang]||locale[str]:str;},checkBrowserCompatibility:function(){return true;},chart:function(chart){var me=this;if(!arguments.length)return me.__chart;me.dataset=chart.dataset();me.theme(chart.theme());me.__chart=chart;var columnFormat=chart.get('metadata.data.column-format',{});var ignore={};_.each(columnFormat,function(format,key){ignore[key]=!!format.ignore;});me.dataset.filterColumns(ignore);return me;},axes:function(returnAsColumns){var me=this,dataset=me.dataset,usedColumns={},axes={},axesDef,axesAsColumns={},errors=[];axesDef=me.chart().get('metadata.axes',{});_.each(me.meta.axes,function(o,key){if(axesDef[key]){var columns=axesDef[key];if(columnExists(columns)){axes[key]=columns;if(!_.isArray(columns))columns=[columns];_.each(columns,function(column){usedColumns[column]=true;});}}});_.each(me.meta.axes,function(axisDef,key){function checkColumn(col){return!usedColumns[col.name()]&&_.indexOf(axisDef.accepts,col.type())>=0;} function errMissingColumn(){var msg=dw.backend?dw.backend.messages.insufficientData:'The visualization needs at least one column of the type %type to populate axis %key';errors.push(msg.replace('%type',axisDef.accepts).replace('%key',key));} if(axes[key])return;if(!axisDef.optional){if(!axisDef.multiple){var c=_.find(dataset.columns(),checkColumn);if(c){usedColumns[c.name()]=true;axes[key]=c.name();}else{if(_.indexOf(axisDef.accepts,'text')>=0){var col=dw.column(key,_.map(_.range(dataset.numRows()),function(i){return(i>25?String.fromCharCode(64+i/26):'')+String.fromCharCode(65+(i%26));}),'text');dataset.add(col);me.chart().dataset(dataset);usedColumns[col.name()]=true;axes[key]=col.name();}else{errMissingColumn();}}}else{axes[key]=[];dataset.eachColumn(function(c){if(checkColumn(c)){usedColumns[c.name()]=true;axes[key].push(c.name());}});if(!axes[key].length){errMissingColumn();}}}else{axes[key]=false;}});if(errors.length){me.notify(errors.join('
'));} _.each(axes,function(columns,key){if(!_.isArray(columns)){axesAsColumns[key]=columns!==false?me.dataset.column(columns):null;}else{axesAsColumns[key]=[];_.each(columns,function(column,i){axesAsColumns[key][i]=column!==false?me.dataset.column(column):null;});}});me.axes=function(returnAsColumns){return returnAsColumns?axesAsColumns:axes;};function columnExists(columns){if(!_.isArray(columns))columns=[columns];for(var i=0;i');tr=$('');var colType=[];dataset.eachColumn(function(column){th=$(''+column.title()+'');if(isHighlighted(column)){th.addClass('highlight');} var number_count=0;column.each(function(val){if(_.isNumber(val))number_count++;});colType.push(column.type());tr.append(th);});$('thead',table).append(tr);_.each(_.range(dataset.numRows()),function(r){tr=$('');var highlighted_rows=me.get('highlighted-rows');if(_.isArray(highlighted_rows)&&_.indexOf(highlighted_rows,"Row "+(me.chart().rowLabel(r)+1))>=0){tr.addClass('highlight');} dataset.eachColumn(function(column,s){var cell_content=me.chart().columnFormatter(column)(column.val(r),true);if(cell_content=="n/a"){cell_content="—";} td=$(''+cell_content+'');if(isHighlighted(column)){td.addClass('highlight');} td.addClass(column.type());if(cell_content=="—")td.addClass("not-available");td.attr('title',column.title());tr.append(td);});$('tbody',table).append(tr);});el.append(table);if(me.get('table-responsive')){table.addClass('responsive');} var datatable_i18n={"sEmptyTable":me.translate("sEmptyTable"),"sInfo":me.translate("sInfo"),"sInfoEmpty":me.translate("sInfoEmpty"),"sInfoFiltered":me.translate("sInfoFiltered"),"sInfoPostFix":"","sInfoThousands":me.translate("sInfoThousands"),"sLengthMenu":me.translate("sLengthMenu"),"sLoadingRecords":me.translate("sLoadingRecords"),"sProcessing":me.translate("sProcessing"),"sSearch":me.translate("sSearch"),"sZeroRecords":me.translate("sZeroRecords"),"oPaginate":{"sFirst":me.translate("oPaginate_sFirst"),"sLast":me.translate("oPaginate_sLast"),"sNext":me.translate("oPaginate_sNext"),"sPrevious":me.translate("oPaginate_sPrevious")},"oAria":{"sSortAscending":me.translate("oAria_sSortAscending"),"sSortDescending":me.translate("oAria_sSortDescending")}};jQuery.extend(jQuery.fn.dataTableExt.oSort,{"formatted-num-pre":function(a){a=(a==="—"||a==="")?-1:a.replace(/[^\d\-\.,]/g,"").replace(',','.');return parseFloat(a);},"formatted-num-asc":function(a,b){return a-b;},"formatted-num-desc":function(a,b){return b-a;},"formatted-date-pre":function(a){return Globalize.parseDate(a);},"formatted-date-asc":function(a,b){return a&b?a.getTime()-b.getTime():0;},"formatted-date-desc":function(a,b){return a&b?b.getTime()-a.getTime():0;}});var colum_types=[];_.each(colType,function(type,s){if(type=="number"){colum_types.push({"sType":"formatted-num"});}else if(type=="date"){colum_types.push({"sType":"formatted-date"});}else{colum_types.push({"sType":null});}});table.dataTable({"bPaginate":me.get('table-paginate',false),"bInfo":me.get('table-paginate',false),"bFilter":me.get('table-filter',false),"bSort":me.get('table-sortable',false),"oLanguage":datatable_i18n,"aoColumns":colum_types});el.append('
');me.renderingComplete();},keys:function(){return _.map(this.dataset.columns(),function(c){return c.name();});}});}).call(this);(function(i,ha,t,p){var l=function(h){function n(a,b){var c=l.defaults.columns,d=a.aoColumns.length;b=i.extend({},l.models.oColumn,c,{sSortingClass:a.oClasses.sSortable,sSortingClassJUI:a.oClasses.sSortJUI,nTh:b?b:t.createElement("th"),sTitle:c.sTitle?c.sTitle:b?b.innerHTML:"",aDataSort:c.aDataSort?c.aDataSort:[d],mDataProp:c.mDataProp?c.oDefaults:d});a.aoColumns.push(b);if(a.aoPreSearchCols[d]===p||a.aoPreSearchCols[d]===null)a.aoPreSearchCols[d]=i.extend({},l.models.oSearch);else{b=a.aoPreSearchCols[d];if(b.bRegex===p)b.bRegex=true;if(b.bSmart===p)b.bSmart=true;if(b.bCaseInsensitive===p)b.bCaseInsensitive=true}q(a,d,null)}function q(a,b,c){b=a.aoColumns[b];if(c!==p&&c!==null){if(c.sType!==p){b.sType=c.sType;b._bAutoType=false}i.extend(b,c);r(b,c,"sWidth","sWidthOrig");if(c.iDataSort!==p)b.aDataSort=[c.iDataSort];r(b,c,"aDataSort")}b.fnGetData=ia(b.mDataProp);b.fnSetData=Ha(b.mDataProp);if(!a.oFeatures.bSort)b.bSortable=false;if(!b.bSortable||i.inArray("asc",b.asSorting)==-1&&i.inArray("desc",b.asSorting)==-1){b.sSortingClass=a.oClasses.sSortableNone;b.sSortingClassJUI=""}else if(b.bSortable||i.inArray("asc",b.asSorting)==-1&&i.inArray("desc",b.asSorting)==-1){b.sSortingClass=a.oClasses.sSortable;b.sSortingClassJUI=a.oClasses.sSortJUI}else if(i.inArray("asc",b.asSorting)!=-1&&i.inArray("desc",b.asSorting)==-1){b.sSortingClass=a.oClasses.sSortableAsc;b.sSortingClassJUI=a.oClasses.sSortJUIAscAllowed}else if(i.inArray("asc",b.asSorting)==-1&&i.inArray("desc",b.asSorting)!=-1){b.sSortingClass=a.oClasses.sSortableDesc;b.sSortingClassJUI=a.oClasses.sSortJUIDescAllowed}}function o(a){if(a.oFeatures.bAutoWidth===false)return false;pa(a);for(var b=0,c=a.aoColumns.length;b=0;e--){var k=b[e].aTargets;i.isArray(k)||M(a,1,"aTargets must be an array of targets, not a "+typeof k);f=0;for(g=k.length;f=0){for(;a.aoColumns.length<=k[f];)n(a);d(k[f],b[e])}else if(typeof k[f]==="number"&&k[f]<0)d(a.aoColumns.length+k[f],b[e]);else if(typeof k[f]==="string"){j=0;for(m=a.aoColumns.length;jb&&a[d]--;c!=-1&&a.splice(c,1)}function ba(a,b,c){var d=a.aoColumns[c];return d.fnRender({iDataRow:b,iDataColumn:c,oSettings:a,aData:a.aoData[b]._aData,mDataProp:d.mDataProp},E(a,b,c,"display"))}function qa(a,b){var c=a.aoData[b],d;if(c.nTr===null){c.nTr=t.createElement("tr");c.nTr._DT_RowIndex=b;if(c._aData.DT_RowId)c.nTr.id=c._aData.DT_RowId;c._aData.DT_RowClass&&i(c.nTr).addClass(c._aData.DT_RowClass);for(var e=0,f=a.aoColumns.length;e=0;f--)!a.aoColumns[f].bVisible&&!c&&g[d].splice(f,1);j.push([])}d=0;for(e=g.length;d=a.fnRecordsDisplay()?0:a.iInitDisplayStart;a.iInitDisplayStart=-1;J(a)}if(a.bDeferLoading){a.bDeferLoading=false;a.iDraw++}else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!Ja(a))return}else a.iDraw++;if(a.aiDisplay.length!==0){var g=a._iDisplayStart;d=a._iDisplayEnd;if(a.oFeatures.bServerSide){g=0;d=a.aoData.length}for(g=g;g
")[0];a.nTable.parentNode.insertBefore(b,a.nTable);a.nTableWrapper=i('
')[0];a.nTableReinsertBefore=a.nTable.nextSibling;for(var c=a.nTableWrapper,d=a.sDom.split(""),e,f,g,j,m,k,y,u=0;u
")[0];m=d[u+1];if(m=="'"||m=='"'){k="";for(y=2;d[u+y]!=m;){k+=d[u+y];y++}if(k=="H")k=a.oClasses.sJUIHeader;else if(k=="F")k=a.oClasses.sJUIFooter;if(k.indexOf(".")!=-1){m=k.split(".");j.id=m[0].substr(1,m[0].length-1);j.className=m[1]}else if(k.charAt(0)=="#")j.id=k.substr(1,k.length-1);else j.className=k;u+=y}c.appendChild(j);c=j}else if(g==">")c=c.parentNode;else if(g=="l"&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange){e=La(a);f=1}else if(g=="f"&&a.oFeatures.bFilter){e=Ma(a);f=1}else if(g=="r"&&a.oFeatures.bProcessing){e=Na(a);f=1}else if(g=="t"){e=Oa(a);f=1}else if(g=="i"&&a.oFeatures.bInfo){e=Pa(a);f=1}else if(g=="p"&&a.oFeatures.bPaginate){e=Qa(a);f=1}else if(l.ext.aoFeatures.length!==0){j=l.ext.aoFeatures;y=0;for(m=j.length;y'):c===""?'':c+' ';var d=t.createElement("div");d.className=a.oClasses.sFilter;d.innerHTML="";if(!a.aanFeatures.f)d.id=a.sTableId+"_filter";c=i('input[type="text"]',d);d._DT_Input=c[0];c.val(b.sSearch.replace('"',"""));c.bind("keyup.DT",function(){for(var e=a.aanFeatures.f,f=this.value===""?"":this.value,g=0,j=e.length;g=0;d--){e=za(E(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType);if(!b.test(e)){a.aiDisplay.splice(d,1);g++}}}}function Ta(a,b,c,d,e,f){d=ya(b,d,e,f);e=a.oPreviousSearch;c||(c=0);if(l.ext.afnFiltering.length!==0)c=1;if(b.length<=0){a.aiDisplay.splice(0,a.aiDisplay.length);a.aiDisplay=a.aiDisplayMaster.slice()}else if(a.aiDisplay.length==a.aiDisplayMaster.length||e.sSearch.length>b.length||c==1||b.indexOf(e.sSearch)!==0){a.aiDisplay.splice(0,a.aiDisplay.length);xa(a,1);for(b=0;b/g,"");else if(typeof a==="string")return a.replace(/[\r\n]/g," ");return a}function Ba(a){return a.replace(new RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),"\\$1")}function Pa(a){var b=t.createElement("div");b.className=a.oClasses.sInfo;if(!a.aanFeatures.i){a.aoDrawCallback.push({fn:Wa,sName:"information"});b.id=a.sTableId+"_info"}a.nTable.setAttribute("aria-describedby",a.sTableId+"_info");return b}function Wa(a){if(!(!a.oFeatures.bInfo||a.aanFeatures.i.length===0)){var b=a.oLanguage,c=a._iDisplayStart+1,d=a.fnDisplayEnd(),e=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),g;g=f===0&&f==e?b.sInfoEmpty:f===0?b.sInfoEmpty+" "+b.sInfoFiltered:f==e?b.sInfo:b.sInfo+" "+b.sInfoFiltered;g+=b.sInfoPostFix;g=va(a,g);if(b.fnInfoCallback!==null)g=b.fnInfoCallback.call(a.oInstance,a,c,d,e,f,g);a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d,e=a.aLengthMenu;if(e.length==2&&typeof e[0]==="object"&&typeof e[1]==="object"){c=0;for(d=e[0].length;c'+e[1][c]+""}else{c=0;for(d=e.length;c'+e[c]+""}b+="";e=t.createElement("div");if(!a.aanFeatures.l)e.id=a.sTableId+"_length";e.className=a.oClasses.sLength;e.innerHTML="";i('select option[value="'+a._iDisplayLength+'"]',e).attr("selected",true);i("select",e).bind("change.DT",function(){var f=i(this).val(),g=a.aanFeatures.l;c=0;for(d=g.length;ca.aiDisplay.length||a._iDisplayLength==-1?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Qa(a){if(a.oScroll.bInfinite)return null;var b=t.createElement("div");b.className=a.oClasses.sPaging+ a.sPaginationType;l.ext.oPagination[a.sPaginationType].fnInit(a,b,function(c){J(c);H(c)});a.aanFeatures.p||a.aoDrawCallback.push({fn:function(c){l.ext.oPagination[c.sPaginationType].fnUpdate(c,function(d){J(d);H(d)})},sName:"pagination"});return b}function Da(a,b){var c=a._iDisplayStart;if(typeof b==="number"){a._iDisplayStart=b*a._iDisplayLength;if(a._iDisplayStart>a.fnRecordsDisplay())a._iDisplayStart=0}else if(b=="first")a._iDisplayStart=0;else if(b=="previous"){a._iDisplayStart=a._iDisplayLength>=0?a._iDisplayStart-a._iDisplayLength:0;if(a._iDisplayStart<0)a._iDisplayStart=0}else if(b=="next")if(a._iDisplayLength>=0){if(a._iDisplayStart+a._iDisplayLength=0){b=parseInt((a.fnRecordsDisplay()-1)/a._iDisplayLength,10)+1;a._iDisplayStart=(b-1)*a._iDisplayLength}else a._iDisplayStart=0;else M(a,0,"Unknown paging action: "+b);i(a.oInstance).trigger("page",a);return c!=a._iDisplayStart} function Na(a){var b=t.createElement("div");if(!a.aanFeatures.r)b.id=a.sTableId+"_processing";b.innerHTML=a.oLanguage.sProcessing;b.className=a.oClasses.sProcessing;a.nTable.parentNode.insertBefore(b,a.nTable);return b}function O(a,b){if(a.oFeatures.bProcessing)for(var c=a.aanFeatures.r,d=0,e=c.length;d0){d=d[0];if(d._captionSide==="top")j.appendChild(d);else d._captionSide==="bottom"&&y&&m.appendChild(d)}if(a.oScroll.sX!==""){c.style.width=s(a.oScroll.sX);e.style.width=s(a.oScroll.sX);if(y!==null)f.style.width=s(a.oScroll.sX);i(e).scroll(function(){c.scrollLeft=this.scrollLeft;if(y!==null)f.scrollLeft=this.scrollLeft})}if(a.oScroll.sY!=="")e.style.height=s(a.oScroll.sY);a.aoDrawCallback.push({fn:Xa,sName:"scrolling"});a.oScroll.bInfinite&&i(e).scroll(function(){if(!a.bDrawing&&i(this).scrollTop()!==0)if(i(this).scrollTop()+i(this).height()>i(a.nTable).height()-a.oScroll.iLoadGap)if(a.fnDisplayEnd()d.offsetHeight||i(d).css("overflow-y")=="scroll"))a.nTable.style.width=s(i(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sXInner!=="")a.nTable.style.width=s(a.oScroll.sXInner);else if(e==i(d).width()&&i(d).height()e-a.oScroll.iBarWidth)a.nTable.style.width=s(e)}else a.nTable.style.width=s(e);e=i(a.nTable).outerWidth();f=a.nTHead.getElementsByTagName("tr");g=g.getElementsByTagName("tr");V(function(I,Q){k=I.style;k.paddingTop="0";k.paddingBottom="0";k.borderTopWidth="0";k.borderBottomWidth="0";k.height=0;u=i(I).width();Q.style.width=s(u);w.push(u)},g,f);i(g).height(0);if(a.nTFoot!==null){j=m.getElementsByTagName("tr");m=a.nTFoot.getElementsByTagName("tr");V(function(I,Q){k=I.style;k.paddingTop="0";k.paddingBottom="0";k.borderTopWidth="0";k.borderBottomWidth="0";k.height=0;u=i(I).width();Q.style.width=s(u);w.push(u)},j,m);i(j).height(0)}V(function(I){I.innerHTML="";I.style.width=s(w.shift())},g);a.nTFoot!==null&&V(function(I){I.innerHTML="";I.style.width=s(w.shift())},j);if(i(a.nTable).outerWidth()d.offsetHeight||i(d).css("overflow-y")=="scroll"?e+a.oScroll.iBarWidth:e;if(B&&(d.scrollHeight>d.offsetHeight||i(d).css("overflow-y")=="scroll"))a.nTable.style.width=s(j-a.oScroll.iBarWidth);d.style.width=s(j);b.parentNode.style.width=s(j);if(a.nTFoot!==null)z.parentNode.style.width=s(j);if(a.oScroll.sX==="")M(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width.");else a.oScroll.sXInner!==""&&M(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else{d.style.width=s("100%");b.parentNode.style.width=s("100%");if(a.nTFoot!==null)z.parentNode.style.width=s("100%")}if(a.oScroll.sY==="")if(B)d.style.height=s(a.nTable.offsetHeight+a.oScroll.iBarWidth);if(a.oScroll.sY!==""&&a.oScroll.bCollapse){d.style.height=s(a.oScroll.sY);B=a.oScroll.sX!==""&&a.nTable.offsetWidth>d.offsetWidth?a.oScroll.iBarWidth:0;if(a.nTable.offsetHeightd.clientHeight||i(d).css("overflow-y")=="scroll";b.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px";if(a.nTFoot!==null){Y.style.width=s(B);z.style.width=s(B);z.style.paddingRight=c?a.oScroll.iBarWidth+"px":"0px"}i(d).scroll();if(a.bSorted||a.bFiltered)d.scrollTop=0}function V(a,b,c){for(var d=0,e=b.length;dtd",b);g=W(a,f);for(f=d=0;f0)a.aoColumns[f].sWidth=s(c);d++}e=i(b).css("width");a.nTable.style.width=e.indexOf("%")!==-1?e:s(i(b).outerWidth());b.parentNode.removeChild(b)}if(j)a.nTable.style.width=s(j)}function $a(a,b){if(a.oScroll.sX===""&&a.oScroll.sY!==""){i(b).width();b.style.width=s(i(b).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sX!=="")b.style.width=s(i(b).outerWidth())}function Za(a,b){var c=ab(a,b);if(c<0)return null;if(a.aoData[c].nTr===null){var d=t.createElement("td");d.innerHTML=E(a,c,b,"");return d}return T(a,c)[b]}function ab(a,b){for(var c=-1,d=-1,e=0;e/g,"");if(f.length>c){c=f.length;d=e}}return d}function s(a){if(a===null)return"0px";if(typeof a=="number"){if(a<0)return"0px";return a+"px"}var b=a.charCodeAt(a.length-1);if(b<48||b>57)return a;return a+"px"}function bb(){var a=t.createElement("p"),b=a.style;b.width="100%";b.height="200px";b.padding="0px";var c=t.createElement("div");b=c.style;b.position="absolute";b.top="0px";b.left="0px";b.visibility="hidden";b.width="200px";b.height="150px";b.padding="0px";b.overflow="hidden";c.appendChild(a);t.body.appendChild(c);b=a.offsetWidth;c.style.overflow="scroll";a=a.offsetWidth;if(b==a)a=c.clientWidth;t.body.removeChild(c);return b-a}function X(a,b){var c,d,e,f,g,j,m=[],k=[],y=l.ext.oSort,u=a.aoData,w=a.aoColumns,z=a.oLanguage.oAria;if(!a.oFeatures.bServerSide&&(a.aaSorting.length!==0||a.aaSortingFixed!==null)){m=a.aaSortingFixed!==null?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c/g,"");b=w[c].nTh;b.removeAttribute("aria-sort");b.removeAttribute("aria-label");if(w[c].bSortable)if(m.length>0&&m[0][0]==c){b.setAttribute("aria-sort",m[0][1]=="asc"?"ascending":"descending");b.setAttribute("aria-label",e+((w[c].asSorting[m[0][2]+1]?w[c].asSorting[m[0][2]+1]:w[c].asSorting[0])=="asc"?z.sSortAscending:z.sSortDescending))}else b.setAttribute("aria-label",e+(w[c].asSorting[0]=="asc"?z.sSortAscending:z.sSortDescending));else b.setAttribute("aria-label",e)}a.bSorted=true;i(a.oInstance).trigger("sort",a);if(a.oFeatures.bFilter)U(a,a.oPreviousSearch,1);else{a.aiDisplay=a.aiDisplayMaster.slice();a._iDisplayStart=0;J(a);H(a)}}function ua(a,b,c,d){db(b,{},function(e){if(a.aoColumns[c].bSortable!==false){var f=function(){var g,j;if(e.shiftKey){for(var m=false,k=0;k=g)for(b=0;b4096){a=t.cookie.split(";");for(var j=0,m=a.length;j=0;f--)e.push(b[f].fn.apply(a.oInstance,d));c!==null&&i(a.oInstance).trigger(c,d);return e}function hb(a){return function(){var b=[A(this[l.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return l.ext.oApi[a].apply(this,b)}}var ib=ha.JSON?JSON.stringify:function(a){var b=typeof a;if(b!=="object"||a===null){if(b==="string")a='"'+a+'"';return a+""}var c,d,e=[],f=i.isArray(a);for(c in a){d=a[c];b=typeof d;if(b==="string")d='"'+d+'"';else if(b==="object"&&d!==null)d=ib(d);e.push((f?"":'"'+c+'":')+d)}return(f?"[":"{")+e+(f?"]":"}")};this.$=function(a,b){var c,d=[],e;c=A(this[l.ext.iApiIndex]);var f=c.aoData,g=c.aiDisplay,j=c.aiDisplayMaster;b||(b={});b=i.extend({},{filter:"none",order:"current",page:"all"},b);if(b.page=="current"){b=c._iDisplayStart;for(c=c.fnDisplayEnd();b=d.fnRecordsDisplay()){d._iDisplayStart-=d._iDisplayLength;if(d._iDisplayStart<0)d._iDisplayStart=0}if(c===p||c){J(d);H(d)}return g};this.fnDestroy=function(a){var b=A(this[l.ext.iApiIndex]),c=b.nTableWrapper.parentNode,d=b.nTBody,e,f;a=a===p?false:true;b.bDestroying=true;L(b,"aoDestroyCallback","destroy",[b]);e=0;for(f=b.aoColumns.length;etr>td."+b.oClasses.sRowEmpty,b.nTable).parent().remove();if(b.nTable!=b.nTHead.parentNode){i(b.nTable).children("thead").remove();b.nTable.appendChild(b.nTHead)}if(b.nTFoot&&b.nTable!=b.nTFoot.parentNode){i(b.nTable).children("tfoot").remove();b.nTable.appendChild(b.nTFoot)}b.nTable.parentNode.removeChild(b.nTable);i(b.nTableWrapper).remove();b.aaSorting=[];b.aaSortingFixed=[];aa(b);i(ca(b)).removeClass(b.asStripeClasses.join(" "));i("th, td",b.nTHead).removeClass([b.oClasses.sSortable,b.oClasses.sSortableAsc,b.oClasses.sSortableDesc,b.oClasses.sSortableNone].join(" "));if(b.bJUI){i("th span."+b.oClasses.sSortIcon+", td span."+b.oClasses.sSortIcon,b.nTHead).remove();i("th, td",b.nTHead).each(function(){var g=i("div."+b.oClasses.sSortJUIWrapper,this),j=g.contents();i(this).append(j);g.remove()})}if(!a&&b.nTableReinsertBefore)c.insertBefore(b.nTable,b.nTableReinsertBefore);else a||c.appendChild(b.nTable);e=0;for(f=b.aoData.length;e=C(d);if(!k)for(e=a;et<"F"ip>'}else i.extend(g.oClasses,l.ext.oStdClasses);i(this).addClass(g.oClasses.sTable);if(g.oScroll.sX!==""||g.oScroll.sY!=="")g.oScroll.iBarWidth=bb();if(g.iInitDisplayStart===p){g.iInitDisplayStart=h.iDisplayStart;g._iDisplayStart=h.iDisplayStart}if(h.bStateSave){g.oFeatures.bStateSave=true;eb(g,h);K(g,"aoDrawCallback",Ea,"state_save")}if(h.iDeferLoading!==null){g.bDeferLoading=true;a=i.isArray(h.iDeferLoading);g._iRecordsDisplay=a?h.iDeferLoading[0]:h.iDeferLoading;g._iRecordsTotal=a?h.iDeferLoading[1]:h.iDeferLoading}if(h.aaData!==null)f=true;if(h.oLanguage.sUrl!==""){g.oLanguage.sUrl=h.oLanguage.sUrl;i.getJSON(g.oLanguage.sUrl,null,function(m){Ca(m);i.extend(true,g.oLanguage,h.oLanguage,m);oa(g)});e=true}else i.extend(true,g.oLanguage,h.oLanguage);if(h.asStripeClasses===null)g.asStripeClasses=[g.oClasses.sStripeOdd,g.oClasses.sStripeEven];c=false;d=i(this).children("tbody").children("tr");a=0;for(b=g.asStripeClasses.length;a=g.aoColumns.length)g.aaSorting[a][0]=0;var j=g.aoColumns[g.aaSorting[a][0]];if(g.aaSorting[a][2]===p)g.aaSorting[a][2]=0;if(h.aaSorting===p&&g.saved_aaSorting===p)g.aaSorting[a][1]=j.asSorting[0];c=0;for(d=j.asSorting.length;c0&&(g.oScroll.sX!==""||g.oScroll.sY!=="")){b=[t.createElement("tfoot")];this.appendChild(b[0])}if(b.length>0){g.nTFoot=b[0];da(g.aoFooter,g.nTFoot)}if(f)for(a=0;a=parseInt(v,10)};l.fnIsDataTable=function(h){for(var n=l.settings,q=0;q'+o.sPrevious+''+o.sNext+"":'';i(n).append(o);var x=i("a",n);o=x[0];x=x[1];h.oApi._fnBindAction(o,{action:"previous"},v);h.oApi._fnBindAction(x,{action:"next"},v);if(!h.aanFeatures.p){n.id=h.sTableId+"_paginate";o.id=h.sTableId+"_previous";x.id=h.sTableId+"_next";o.setAttribute("aria-controls",h.sTableId);x.setAttribute("aria-controls",h.sTableId)}},fnUpdate:function(h){if(h.aanFeatures.p)for(var n=h.oClasses,q=h.aanFeatures.p,o=0,v=q.length;o'+o.sFirst+''+o.sPrevious+''+o.sNext+''+o.sLast+"");var C=i("a",n);o=C[0];v=C[1];var D=C[2];C=C[3];h.oApi._fnBindAction(o,{action:"first"},x);h.oApi._fnBindAction(v,{action:"previous"},x);h.oApi._fnBindAction(D,{action:"next"},x);h.oApi._fnBindAction(C,{action:"last"},x);if(!h.aanFeatures.p){n.id=h.sTableId+"_paginate";o.id=h.sTableId+"_first";v.id=h.sTableId+"_previous";D.id=h.sTableId+"_next";C.id=h.sTableId+"_last"}},fnUpdate:function(h,n){if(h.aanFeatures.p){var q=l.ext.oPagination.iFullNumbersShowPages,o=Math.floor(q/2),v=Math.ceil(h.fnRecordsDisplay()/h._iDisplayLength),x=Math.ceil(h._iDisplayStart/h._iDisplayLength)+1,C="",D,G=h.oClasses,F,S=h.aanFeatures.p,P=function(ja){h.oApi._fnBindAction(this,{page:ja+D-1},function(N){h.oApi._fnPageChange(h,N.data.page);n(h);N.preventDefault()})};if(h._iDisplayLength===-1)x=o=D=1;else if(v=v-o){D=v-q+1;o=v}else{D=x-Math.ceil(q/2)+1;o=D+q-1}for(q=D;q<=o;q++)C+=x!==q?''+h.fnFormatNumber(q)+"":''+h.fnFormatNumber(q)+"";q=0;for(o=S.length;qn?1:0},"string-desc":function(h,n){return hn?-1:0},"html-pre":function(h){return h.replace(/<.*?>/g,"").toLowerCase()},"html-asc":function(h,n){return hn?1:0},"html-desc":function(h,n){return hn?-1:0},"date-pre":function(h){h=Date.parse(h);if(isNaN(h)||h==="")h=Date.parse("01/01/1970 00:00:00");return h},"date-asc":function(h,n){return h-n},"date-desc":function(h,n){return n-h},"numeric-pre":function(h){return h=="-"||h===""?0:h*1},"numeric-asc":function(h,n){return h-n},"numeric-desc":function(h,n){return n-h}});i.extend(l.ext.aTypes,[function(h){if(typeof h==="number")return"numeric";else if(typeof h!=="string")return null;var n,q=false;n=h.charAt(0);if("0123456789-".indexOf(n)==-1)return null;for(var o=1;o")!=-1)return"html";return null}]);i.fn.DataTable=l;i.fn.dataTable=l;i.fn.dataTableSettings=l.settings;i.fn.dataTableExt=l.ext})(jQuery,window,document,undefined);