//window.onresize = fooResize;
//window.onload = fooInit;
function fooInit(){

	
	//fooResize();
	
}
function fooResize(){

	//var w = document.getElementById("mapWrapper").offsetWidth;
	var map_pos = $("#map").position();
	var map_w = $("#map").width();
	
	
	$("#monthDivWrapper").css("top", map_pos.top +20);
	$("#yearDivWrapper").css("top", map_pos.top +20);
	
	$("#monthDivWrapper").css("left", map_pos.left + map_w - 160-10);
	$("#yearDivWrapper").css("left", $("#monthDivWrapper").position().left + $("#monthDivWrapper").width() );	
	

}


var INITIAL_YEAR =2001;
var INITIAL_MONTH = 0;

var yearCount=INITIAL_YEAR;
var monthCount=INITIAL_MONTH;
var arrMonths = ["Jan.", "Feb.", "Mar.", "Apr.", "May", "June", "July", "Aug.", "Sept.", "Oct.", "Nov.", "Dec."];

var INTERVAL = 300;
var SHOW_INT = INTERVAL-100;
var MAX_YEAR = 2008;
var isTimerRunning= false, didBedCountChange=false;
var bedCount= 0;
var facilityCount = 0;

var BTN_COLOR_ACTIVE = "#ffffff";
var BTN_COLOR_INACTIVE = "#dadada";
var baseIcon;

var tableParams = [{header:"Facility", param:"name"}, {header:"City", param:"city"}, {header:"Beds", param:"beds"},
					{header:"Date Acquired", param:"dateFormatted"},
					{header:"Map", param:"markerLink"} ];

var DATA_TABLE_DIV_NAME = "#dataTable";

function initMapIcons(){

	baseIcon = new GIcon(G_DEFAULT_ICON);
	//baseIcon.image = "images/defaultIcon.png";
	baseIcon.iconSize = new GSize(14, 22);
	baseIcon.iconAnchor = new GPoint(5, 5);
	baseIcon.infoWindowAnchor = new GPoint(5, 2);
	baseIcon.shadow = null;

}


$(document).ready(function() {
//	loadStaticXML("xmltest.xml", processStandardXML);

	
	
	
	
	$('.button').hover(
		function() {
			
		//	$(this).attr("obcolor", $(this).css("backgroundColor"));
			$(this).animate(
				{ backgroundColor: BTN_COLOR_ACTIVE}, SHOW_INT);
				

		}, 
		
		function() {
		
			var c = $(this).attr("obcolor");
			$(this).animate(
				{ backgroundColor: c }, SHOW_INT);
		}
	);


	
	
	
	fooInit();
	
	
	//start the timer and interval
	$.timer(INTERVAL, function (timer) {

		
		if(isTimerRunning){
	   
	   
	   		updateFoo();
	   		
		   
		   
		}else{
		
		//do nothing
		
		}
	   
				   		
		
	});
	   
	   
	   
});





function fooInit(){



	yearCount=INITIAL_YEAR;
	monthCount=INITIAL_MONTH;
	bedCount=0; 
	facilityCount = 0;
	
	
	isTimerRunning = false;
	updateDataOnTimer(monthCount,yearCount);
	updateTextFields( monthCount, yearCount );
	
	fooInitButtons();
	initTable(DATA_TABLE_DIV_NAME, tableParams);

}


function fooInitButtons(){


	$('.button').each( function(){
	
		activateButton( $(this), false);
	});
	
	
	activateButton( $("#btn_stop"), true);


}

function fooReset(){

	resetTrace();
	

	
	
	
	fooInit();
	
	
	for(var i in arrData){
	
		var a = arrData[i];
		a.onMap = false;
	}
	
	myresetCharts();
	resetMap();
	
}


function updateFoo(){
		
		
		
		
		updateOnTimer(monthCount, yearCount);
		
		
		
		monthCount++;
		
	   	
		
		
		
		if(monthCount >= 12){
		
			if(yearCount >= MAX_YEAR){
				stopTimer();
			}else{
				yearCount++;
				monthCount = 0;
				
			}
			
		}				
		
}		


function updateTextFields(mth, yr){

	var m = arrMonths[(monthCount%12)];
	displayData("#monthDiv", m, "#monthDivWrapper");
	displayData("#yearDiv", yr, "#yearDivWrapper");
	displayData("#bedcountDiv", bedCount+" Beds Operated");
	displayData("#facilityCountDiv", facilityCount+" Facilities");
	
}

		
		

function startTimer(){

	
	isTimerRunning = true;
	activateButton( $("#btn_start"), true);
	activateButton( $("#btn_stop"), false);
		
}		   
					

function stopTimer(){

	activateButton( $("#btn_start"), false);
	activateButton( $("#btn_stop"), true);

	isTimerRunning = false;

}

function resetTimer(){

	isTimerRunning = false;
	fooReset();
	
}


					
				
					
function updateOnTimer(mth, yr){

	updateTextFields(mth, yr);
	updateDataOnTimer(mth, yr);
	

	//updateChartsOnTimer(mth, yr);
	

}

function updateDataOnTimer(mth,yr){


	mth++;

	if(mth < 10){
		mth = "0"+mth;
	}
	
	var cat = parseInt(yr+""+mth);
	
	
	
	for(var i = 0; i < arrData.length; i++){
	
	
		var a = arrData[i];
		if(a.onMap == true){
			
		}else if( thisfoo_compareDate(a.date, cat)){
		
			a.onMap = true;
			facilityCount++;
			updateMapOnTimerCall(a);
			updateBedCountOnTimerCall(a.beds);
		}
	
	}
	
	updateBedCountDisplayOnTimerCall(bedCount);
	
	

}

function updateBedCountOnTimerCall(beds){

	bedCount += beds;
	didBedCountChange = true;
}



function updateBedCountDisplayOnTimerCall(beds){

	if(didBedCountChange){
		updateChartOnChange("chartBeds", monthCount, yearCount);
		didBedCountChange = false;	
	}
	
}


function updateChartOnChange(div, mth, yr){



	if(googleInitialized){
		updateChart(div, new Date(yr, mth+1, 1), bedCount );
		
	}

}


function updateMapOnTimerCall(a){


	thisfoo_addMarkerFromObj(a)

}


function thisfoo_compareDate(dt, cat){
	
	if (dt <= cat){
		return true;
		
	}else{
		return false;
	}


}



function thisfoo_addMarkerFromObj(a){

	//createMarker(arr, lati, longi, id, text, iconi, param)
	var m = createMarker(arrMarkers, a.lat, a.lng, a.name, 
	"<b>" + a.name + "</b> in " + a.city + " <br> Acquired in " + page_convertIntToDate( a.date ) + " (" + a.owner + ")<br>" + a.beds + " beds", 	
	baseIcon, null);
	addMarkerToMap(m);
	
	a.markerLink = "<a href=\"#map\" onclick='clickPoint(\""+a.name+"\")'>Map</a>";
	a.dateFormatted = page_convertIntToDate(a.date);
	var t = createTableRow(DATA_TABLE_DIV_NAME, tableParams, a);
	
	
	
}

function createTableRow(div, arrParams, obj){


	var xtraClass = (facilityCount%2) ? "" : " class='tr_striped' ";
	var h = $(div).html();
	h += "<tr" + xtraClass + ">";
	

	for(var i in arrParams){
		var a = arrParams[i].param;
	
		var e = eval("obj."+a);
		h += "<td>"+e+"</td>";
	
	}
	h += "</tr>";
	$(div).html(h);
	
}


function initTable(div, arr){

	var txt = "<thead><tr>";
	
	for(var i in arr){
		var a = arr[i].header;
		txt +="<td>" + a + "</td>";
	
	
	}

	txt += "</tr></thead>";
	$(div).html(txt);

}



///////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

function activateButton(btn, bool){

	if(bool !== false){
	
		btn.attr("obcolor", BTN_COLOR_ACTIVE);
		btn.css("backgroundColor", BTN_COLOR_ACTIVE);
		btn.addClass("btnActive");
		
	}else{

		btn.attr("obcolor", BTN_COLOR_INACTIVE);
		btn.css("backgroundColor", BTN_COLOR_INACTIVE);
		btn.removeClass("btnActive");
	
	}

}


function displayData(div, txt, parent){

	var t = $(div).html();

	if(t != txt){
		
		if((parent)){
			$(parent).css("backgroundColor", "#ffffff").animate
			({ backgroundColor: "#cdddff" }, SHOW_INT);
		}else{
			//$(div).hide();		
			//$(div).slideDown(SHOW_INT);
		}
	
	
		$(div).html(txt);
//		
	}
}


function page_convertIntToDate(num){

	num = num.toString();

	var m = ( num.substring(4) );
	if(m.charAt(0) == "0"){
		m = parseInt(m.charAt(1));
	}else{
		m = parseInt(m);
	}
	m--;
	m = arrMonths[m];
	
	return (m + " " + num.substring(0,4) );
	
	
}
	
