var setSessionPeriodFilterFailure = function(o){
	//document.getElementById('loadingDiv').style.display='none';
	//window.setMessage( window.serverAddr, "ERROR");
	//alert("SAVE FILTERS ERROR");
}

var setSessionPeriodFilterSuccess = function (o){
	//alert("FILTERS SAVED");
	//location.reload(true);
}
var cal1=null;

function initializeCalendar() {
	if (!cal1) {
		var fdate = new Date(document.getElementById('fdate').value);
		var ldate = new Date(); // always set to today
		var str1 = document.getElementById('startdate').value;
		var str2 = document.getElementById('enddate').value;
		if(navigator.appName == "Microsoft Internet Explorer") {
			var sdate = new Date(str1.replace(/-/,","));
			var edate = new Date(str2.replace(/-/,","));
		}
		else {
			var sdate = new Date(str1.replace(/-/g,","));
			var edate = new Date(str2.replace(/-/g,","));
		}
		var selected1 = (sdate.getMonth()+1)+"/"+sdate.getDate()+"/"+sdate.getFullYear();
		var selected2 = (edate.getMonth()+1)+"/"+edate.getDate()+"/"+edate.getFullYear();
		var pagedate1 = (sdate.getMonth()+1)+"/"+sdate.getFullYear();
		var pagedate2 = (edate.getMonth()+1)+"/"+edate.getFullYear();
		cal1 = new YAHOO.widget.Calendar("cal1","calendarContainer1",{mindate:fdate,maxdate:ldate,selected:selected1,pagedate:pagedate1});
		cal2 = new YAHOO.widget.Calendar("cal2","calendarContainer2",{mindate:fdate,maxdate:ldate,selected:selected2,pagedate:pagedate2});
		cal1.render(); 
		cal2.render();
		//set criteria date values
		try {
			document.getElementById('criteriafromdate').innerHTML = selected1;
			document.getElementById('criteriatodate').innerHTML = selected2;
		} catch(e) {}
	}	
	document.getElementById('containerForCalendars').style.display = 'block';
	
}

function selectCalendar(page) {
	var sdate=null;
	var arrDates = cal1.getSelectedDates();
	for (var i = 0; i < arrDates.length; ++i) {
		sdate = arrDates[i];
	}
	if (sdate == null) {
		alert('Please select a "From" date');
		return false;
	}
	
	var edate = null;
	arrDates = cal2.getSelectedDates();
	for (var i = 0; i < arrDates.length; ++i) {
		edate = arrDates[i];
	}
	if (edate == null) {
		alert('Please select a "To" date');
		return false;
	}

	if (edate < sdate) {
		alert('The "From" date should be before the "To" date');
		return false;
	}
	
	var selected1 = (sdate.getMonth()+1)+"/"+sdate.getDate()+"/"+sdate.getFullYear();
	var pagedate1 = (sdate.getMonth()+1)+"/"+sdate.getFullYear();
	
	var selected2 = (edate.getMonth()+1)+"/"+edate.getDate()+"/"+edate.getFullYear();
	var pagedate2 = (edate.getMonth()+1)+"/"+edate.getFullYear();
	
	cal1.cfg.setProperty("selected",selected1);
	cal1.cfg.setProperty("pagedate",pagedate1);
	cal2.cfg.setProperty("selected",selected2);
	cal2.cfg.setProperty("pagedate",pagedate2);
	cal1.render();
	cal2.render();
	//remove restrictions on map panning
	a_mapid=null;
	a_crimeid=null;
	
	document.getElementById('startdate').value = sdate.getFullYear() + '-' + (sdate.getMonth() + 1) + '-' + sdate.getDate();
	document.getElementById('enddate').value = edate.getFullYear() + '-' + (edate.getMonth() + 1) + '-' + edate.getDate();
	document.getElementById('fromdate').innerHTML = selected1;
	document.getElementById('todate').innerHTML = selected2;	

	clearAllSelectedPeriods()
	closeCalendar();
	setSessionPeriodFilter();
	if(page==1) {
		setAnalytics();
	} else {
		try {
			document.getElementById('criteriafromdate').innerHTML = selected1;
			document.getElementById('criteriatodate').innerHTML = selected2;
		} catch (e) {}
		getDataForNewFilter();
	}
}

function closeCalendar() {
	document.getElementById('containerForCalendars').style.display = 'none';
}
	
function togglePeriodFilter(periodSpan, page)	{
	
	//remove restrictions on map panning
	a_mapid=null;
	a_crimeid=null;

	var siblingsAndMe = periodSpan.parentNode.getElementsByTagName('SPAN');
	for (var i = 0; i < siblingsAndMe.length; i++) {
		// if this is changed to something like : siblingsAndMe[i].setAttribute('class', ...
		// then you need to do setAttribute('className' ...  for IE, but just setAttribute('class' .. for other browsers.
		// rather than have two lines of code, i took out the call to setAttribute and just set the className directly.
		siblingsAndMe[i].className = 'filterItem'+(siblingsAndMe[i] == periodSpan ? 'Selected':'');
	}
	document.getElementById('dayrange').value = periodSpan.innerHTML;
	var range = periodSpan.innerHTML;
	var sdate;
	switch(range) {
		case '3':
			sdate = new Date(document.getElementById('three_day').value);
			break;
		case '7':
			sdate = new Date(document.getElementById('seven_day').value);
			break;
		case '14':
			sdate = new Date(document.getElementById('two_week').value);
			break;
		case '30':
			sdate = new Date(document.getElementById('thirty_day').value);
			break;
		default:
			sdate = new Date(document.getElementById('two_week').value);
			break;
	}
	
	var edate = new Date();
	var selected1 = (sdate.getMonth()+1)+"/"+sdate.getDate()+"/"+sdate.getFullYear();
	var selected2 = (edate.getMonth()+1)+"/"+edate.getDate()+"/"+edate.getFullYear();
	var pagedate1 = (sdate.getMonth()+1)+"/"+sdate.getFullYear();
	var pagedate2 = (edate.getMonth()+1)+"/"+edate.getFullYear();
	
	if (!cal1) {

		var fdate = new Date(document.getElementById('fdate').value); // 6 month limit

		var ldate = new Date(); // always set to today
		cal1 = new YAHOO.widget.Calendar("cal1","calendarContainer1",{mindate:fdate,maxdate:ldate,selected:selected1,pagedate:pagedate1});
		cal2 = new YAHOO.widget.Calendar("cal2","calendarContainer2",{mindate:fdate,maxdate:ldate,selected:selected2,pagedate:pagedate2});
		cal1.render(); 
		cal2.render();
	}	
	else {
		cal1.cfg.setProperty("selected",selected1);
		cal1.cfg.setProperty("pagedate",pagedate1);
		cal2.cfg.setProperty("selected",selected2);
		cal2.cfg.setProperty("pagedate",pagedate2);
		cal1.render();
		cal2.render();
	}
	
	document.getElementById('startdate').value = sdate.getFullYear() + '-' + (sdate.getMonth() + 1) + '-' + sdate.getDate();
	document.getElementById('enddate').value = edate.getFullYear() + '-' + (edate.getMonth() + 1) + '-' + edate.getDate();
	document.getElementById('dayrange').value = periodSpan.innerHTML;
	document.getElementById('fromdate').innerHTML = selected1;
	document.getElementById('todate').innerHTML = selected2;
	
	setSessionPeriodFilter();
	
	if(page==1) {
		setAnalytics();
	} else {
		try {
			document.getElementById('criteriafromdate').innerHTML = selected1;
			document.getElementById('criteriatodate').innerHTML = selected2;
		} catch (e) {}
		getDataForNewFilter();
	}
}
	
function clearAllSelectedPeriods() {
	var periodFilters = null;
	try {
		periodFilters = document.getElementById('periodFilters').getElementsByTagName('SPAN');
	} catch (e) {return null;}
	if (periodFilters == null)
		return;

	for (var i = 0; i < periodFilters.length; i++) {
		if (periodFilters[i].className == 'filterItemSelected') {
			periodFilters[i].className = 'filterItem';
		}
	}
	document.getElementById('dayrange').setAttribute('value', '');
}

function setSessionPeriodFilter(){

	var callback =
	{
		success: setSessionPeriodFilterSuccess,
		failure: setSessionPeriodFilterFailure,
		argument: []
	}
		
	YAHOO.util.Connect.setForm(document.getElementById('filters'));
	//alert(document.getElementById('filters'));
	var transaction = YAHOO.util.Connect.asyncRequest('POST', htmlbase + 'index/setperiodfilter/isAjax/true/cb/'+100*Math.random(), callback, createSessionFilterPostString(
			document.getElementById('startdate').value,
			document.getElementById('enddate').value,
			document.getElementById('dayrange').value)
	);
}

function createSessionFilterPostString(startdate, enddate, dayrange){
	var postString = "?";
	
	postString += 'dayrange='+ dayrange +"&";
	postString += 'startdate='+startdate+"&";
	postString += 'enddate='+enddate+"&";

	//alert('createsave');
	
	return postString;
}
