  var months = [];
  
  months['January'] = 1;
  months['February'] = 2;
  months['March'] = 3;
  months['April'] = 4;
  months['May'] = 5;
  months['June'] = 6;
  months['July'] = 7;
  months['August'] = 8;
  months['September'] = 9;
  months['October'] = 10;
  months['November'] = 11;
  months['December'] = 12;


var chartColors = ['#A5DBFC', '#CDE8FA', '#D9F0FA', '#0099F9', '#1BA4F9', 
  '#41B2FA', '#63C1FA', '#83CDFA'];
//var chartColors = ['#f0e1e3', '#f6c1bc', '#f6adb4', '#f6bcd1', '#f6d4dc', '#f6bcbf']

function doOnResizeEnd(){
	var widths = '';
	
	for(i = 0; i < grid.getColumnsNum(); i++){
		widths += grid.cellWidthPX[i];
	  widths += i < grid.getColumnsNum()-1 ? ',' : '';
	}
	
  createCookie(window.location.pathname+'columnWidths', widths, 365);  
}

function colorizeText(from, to){
  	
  	// Set red text for negative values
  	for(i = 0; i < grid.getRowsNum(); i++){
      for(j = from; j < to; j++){
      	if(grid.cells(grid.getRowId(i), j).getValue().substring(0,1) == '-'){
  	      grid.setCellTextStyle(grid.getRowId(i), j,"color:red");
  	    }else{
  	    	grid.setCellTextStyle(grid.getRowId(i), j,"color:black;");
  	    }
  	  }
  	}
  }



function updateChart(chartLabelColumn){
  	var chartSelect = document.getElementById('chartSelect');
  	var column = chartSelect.options[chartSelect.selectedIndex].value;
  	var text = chartSelect.options[chartSelect.selectedIndex].text;

  	var myData = [];   
  	//var colors = [];	
  	
  	var cyclingCount = 0;
  	var paddlingCount = 0;
  	
  	for(i = 0; i < grid.getRowsNum(); i++){
  		
  		var activity = grid.cells(grid.getRowId(i), 2).getValue();
  		var value = parseFloat(grid.cells(grid.getRowId(i), column).getValue());
  		
  		if(activity == 'Cycling'){
  			cyclingCount += value;
  		}else if(activity == 'Paddling'){
  			paddlingCount += value;
  		}
    }
    //alert(cyclingCount);
    
  	myData[0] = ['Cycling', cyclingCount];
  	myData[1] = ['Paddling', paddlingCount];
	  
	  myChart.setDataArray(myData);
	  myChart.setTitle('');
	  myChart.colorizePie(['#A5DBFC', '#CDE8FA']);
	  myChart.draw();
	  
  }
  
function d2h(d) {return d.toString(16);}
function h2d(h) {return parseInt(h,16);} 
  
function formatCurrency(num) {
  num = num.toString().replace(/\$|\,/g,'');
  
  if(isNaN(num)){
    num = "0";
  }
  
  sign = (num == (num = Math.abs(num)));
  num = Math.floor(num*100+0.50000000001);
  cents = num%100;
  num = Math.floor(num/100).toString();
       
  if(cents < 10){
    cents = "0" + cents;
  }
  
  for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++){
    num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
  }
  
  //return (((sign)?'':'-') + '$' + num + '.' + cents);
  return (((sign)?'':'-') + num + '.' + cents);
}

function isFloat(str) {
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?[0-9]+(\.[0-9]+)?$/.test(str);
}

function getMonthDuration(startDate, endDate){
  
  var e = new Date(endDate.split('-')[0], endDate.split('-')[1]-1, endDate.split('-')[2]);
  var s = new Date(startDate.split('-')[0], startDate.split('-')[1]-1, startDate.split('-')[2]);
  var duration = ((e.getTime()-s.getTime())/1000.0/3600.0/24.0/30.0).toFixed(2);
  
  if(isNaN(duration)){
    duration = '';
  }
  
  return duration;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' '){
			c = c.substring(1,c.length);
		}
		
		if (c.indexOf(nameEQ) == 0){
			
	    return c.substring(nameEQ.length,c.length);
	  }
	}
	
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

