//GLOBAL DECLARATIONS
var map;
var CRIMESxmlDoc;
var nummonths;
//END GLOBAL DECLARATIONS


//BEGIN LAYER - CRIME DATA
//create a document object & load layer
if (window.ActiveXObject)
{
	CRIMESxmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation.createDocument)
{
	CRIMESxmlDoc=document.implementation.createDocument("","",null);
}
else
{
	alert('Your browser cannot handle this script');
}
CRIMESxmlDoc.async="false"; 
CRIMESxmlDoc.load("crimes.xml");

//process document
//first, declare global variables for each element and for map
var CRIMESmarkers=CRIMESxmlDoc.getElementsByTagName("marker");
var titles=CRIMESxmlDoc.getElementsByTagName("title");
var streetAddresss=CRIMESxmlDoc.getElementsByTagName("streetAddress");
var citys=CRIMESxmlDoc.getElementsByTagName("city");
var states=CRIMESxmlDoc.getElementsByTagName("state");
var zips=CRIMESxmlDoc.getElementsByTagName("zip");
var crimeDates=CRIMESxmlDoc.getElementsByTagName("crimeDate");

//internal function to get element value
function getCRIMESmarkers(i){return CRIMESmarkers.item(i).text}
function gettitles(i){return titles.item(i).text}
function getstreetAddresss(i){
	var parts = streetAddresss.item(i).text.split(" ");
	parts[0] = "";
	return parts.join(" ");
}
function getcitys(i){return citys.item(i).text}
function getstates(i){return states.item(i).text}
function getzips(i){return zips.item(i).text}
function getcrimeDates(i){return crimeDates.item(i).text}
//END LAYER - CRIME DATA

function ckThreeMonthRule(){
	var toMnth=parseFloat(document.getElementById("ddlToMonth").value);
	var toYr=parseFloat(document.getElementById("ddlToYear").value);
	var fromMnth=parseFloat(document.getElementById("ddlFromMonth").value);
	var fromYr=parseFloat(document.getElementById("ddlFromYear").value);

	if(fromMnth==10&&((toMnth!=11&&toYr!=fromYr)||(toMnth==12&&toYr!=fromYr))){
		toMnth=12;
		toYr=fromYr;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
	else if(fromMnth==11&&((toMnth!=12&&toYr!=fromYr)||(toMnth==1&&toYr!=fromYr+1))){
		toMnth=1;
		toYr=fromYr+1;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
	else if(fromMnth==12&&((toMnth!=1&&toYr!=fromYr+1)||(toMnth==2&&toYr!=fromYr+1))){
		toMnth=1;
		toYr=fromYr+1;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
	else if(toMnth>fromMnth+2){
		toMnth=fromMnth+2;
		toYr=fromYr;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
	else if(fromMnth>toMnth){
		toMnth=fromMnth+2;
		toYr=fromYr;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
	else if(fromYr>toYr||(toYr>fromYr&&(fromMnth!=11|fromMnth!=12))){
		toMnth=fromMnth+2;
		toYr=fromYr;
		document.getElementById("ddlToMonth").value=toMnth;
		document.getElementById("ddlToYear").value=toYr;
	}
}

function getgooglemap(){

	if (GBrowserIsCompatible()) {
	// Center the map
	map = new GMap2(document.getElementById("mappy"));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl());
	map.addControl(new GOverviewMapControl());
	map.setCenter(new GLatLng(46.23519,-119.114456));
	map.setMapType(G_NORMAL_MAP);
	map.setZoom(12);
	}
}




//this creates a marker and adds listener
function createMarker(point, html, icon)
{
	icon = new GIcon();
	icon.image = "grn-pushpin.png";
	icon.shadow = "pushpin_shadow.png";
	icon.iconSize = new GSize(12, 20);
	icon.shadowSize = new GSize(22, 20);
	icon.iconAnchor = new GPoint(6, 20);
	icon.infoWindowAnchor = new GPoint(5, 1);

	// Set up our GMarkerOptions object
	markerOptions = { icon:icon };

	var marker = new GMarker(point, markerOptions);
	GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml(html);
	});

	return marker;
}


function onSearch(fromMonth,fromYear,category)
{
	map.clearOverlays();

	if(category.toUpperCase()=="SELECT CATEGORY")
	{
		alert("You must select a category");
	}
	else
	if(category.toUpperCase()!="ALL CATEGORIES")
	{
		for (var i=0; i < document.Form1.ddlnummonths.length; i++)
		{
			if(document.Form1.ddlnummonths[i].checked)
			{
				nummonths = document.Form1.ddlnummonths[i].value;
			}
		} 
//alert(nummonths);
//alert(fromMonth+", "+fromYear+", "+toMonth+", "+toYear+", "+category);
		var fromdate=new Date(fromYear,fromMonth-1,1);
		//var todate=new Date(toYear,toMonth,0);
		var toMonth=parseFloat(fromMonth)+parseFloat(nummonths);
		var toYear=fromYear;
		todate=new Date(toYear,toMonth,0);
//alert(fromdate+" to "+todate);
		var one_day=1000*60*60*24;
		var num_of_days = Math.ceil((todate.getTime()-fromdate.getTime())/one_day);
//alert(num_of_days);
/* 		if(num_of_days>90||num_of_days<0)
		{
//alert("Hello World");
			toMonth=parseFloat(fromMonth)+2;
			toYear=fromYear;
//alert(fromMonth+", "+fromYear+", "+toMonth+", "+toYear+", "+category);
			todate=new Date(toYear,toMonth,0);
			}
//alert(fromdate+" to "+todate);

 */
		var title;
		var name;
		var addr;
		var city;
		var state;
		var zip;
		var crimedate;

		for(i=0; i< CRIMESmarkers.length; i++)
		{
			var point = new GLatLng(parseFloat(CRIMESmarkers[i].getAttribute("lat")),
						parseFloat(CRIMESmarkers[i].getAttribute("lng")));
			// save the info we need to use later for the sidebar
			title=gettitles(i);
			name=gettitles(i);
			addr=getstreetAddresss(i);
			city=getcitys(i);
			state=getstates(i);
			zip=getzips(i);
			crimedate=new Date(getcrimeDates(i));
			
//alert(fromdate+" to "+todate+" crimedate:"+crimedate);

			if(category==title)
			{		
				if(crimedate>=fromdate&&crimedate<=todate)
				{
				//alert("hello world");
					var day=crimedate.getDate();
					var month=crimedate.getMonth()+1;
					var year=crimedate.getFullYear();
				
					var html=title+"<br>";
					html=html+addr+", "+city+", "+state+" "+zip+"<br>";
					html=html+month+"/"+day+"/"+year;
		
					map.addOverlay(createMarker(point, html, name));
				}
			}
		}
	}
}
