// standard time format for joule is y-m-dTh:m:s

function dateToStd(rawtime) {
	var ndate = rawtime.getFullYear() + "-" + (rawtime.getMonth()+1) + "-" + rawtime.getDate() + "T" + rawtime.getHours() + ":" + rawtime.getMinutes() + ":" + rawtime.getSeconds();
	return ndate;
}

var data = "";
var chart = "";
var last_time = 0;
var last_value = 0;
var last_dollars = 0;
var refreshInterval = 0;
var dataToShow = "watts";
var house_id;


function update_twitter() {

	$('.twitterlivelink').attr("title",$('#house_name').text() + " is using " + $('#current_rate_dollars').text() + " of energy per hour right now! View live use at http://wattvision.com #wattvision");

	$('.twitterlivelink').attr("href", function(arr) {
		return "http://twitter.com/home?status=" + $.URLEncode(this.title);
	});
	
	$('.twitterlivelink').tooltip({track:true,showURL:false});

}


function redrawChart(show_current,occupants,sqft) {
	chart.draw(data, {fill:20,displayZoomButtons:false,displayRangeSelector:false,thickness:3,colors:["#41ba2f"]});

	if (show_current) {
	 	$("#current_rate").text(last_value).format({format:"#,###,###"});
		$('#current_rate_dollars').text(last_dollars).format({format:"$###,###.00"});


		$('#dol_per_day').text(last_dollars*24).format({format:"$###,###.00"});

		if (occupants) { $('#dol_per_day_per_occupant').text(last_dollars*24/occupants).format({format:"$###,###.00"}); }
		else { $('#dol_per_day_per_occupant').html("&mdash;"); }

		if (sqft) {	$('#dol_per_day_per_sqft').text(last_dollars*24/(sqft/1000)).format({format:"$###,###.00"}); }
		else { $('#dol_per_day_per_sqft').html("&mdash;"); }
	}
	
	update_twitter();
	
	calc_diffs();
}

function addDP(time,value,dollars) {
	newRow = data.addRow();
	datetime = new Date(time);
	data.setValue(newRow,0,datetime);
	data.setValue(newRow,1,value);
	if (datetime > last_time) { last_time = datetime; last_value = value; last_dollars = dollars; }
	if (data.getNumberOfRows() > 720) { data.removeRow(0); }
}

function processDPs(data, textStatus) {

	flag = 0;
	for (i in data) {
		addDP(data[i][0], data[i][1], data[i][2]);
		flag=1;
	}

	if (flag) { redrawChart(true,house_occupants,house_area); }
}

function refreshDPs() {
	stddate = dateToStd(last_time)
	jQuery.post("/house/newpoints", {houseid: house_id, last_point: stddate}, processDPs, "json");
}
	
function startrefresh() {
	refreshInterval = setInterval("refreshDPs()",10000);
}

function stoprefresh() {
	clearInterval(refreshInterval);
}

/*http://plugins.jquery.com/project/URLEncode*/
$.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
  while(x<c.length){var m=r.exec(c.substr(x));
    if(m!=null && m.length>1 && m[1]!=''){o+=m[1];x+=m[1].length;
    }else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
    o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;},
URLDecode:function(s){var o=s;var binVal,t;var r=/(%[^%]{2})/;
  while((m=r.exec(o))!=null && m.length>1 && m[1]!=''){b=parseInt(m[1].substr(1),16);
  t=String.fromCharCode(b);o=o.replace(m[1],t);}return o;}
});