
//////////////////////////////////////
//Add markers for all event locations//
//////////////////////////////////////

var MORE_NUM = 4; //Number of elements under more button

var selEventArray = new Array(); //Stores more elements selected by user

var locEventArray = new Array();

if (!printMap)
{
	//Make divs unselectable with mouse
	noSelect('btnMore');
	noSelect('wrapBodyMore');
	noSelect('wrapMapControls');
	noSelect('mapTypeISU');
	noSelect('mapTypeSat');

	listener.addEvent(document.getElementById('mapTypeISU'), "click", function(e){
			changeMapType(this)
		}, true);

	listener.addEvent(document.getElementById('mapTypeSat'), "click", function(e){
			changeMapType(this)
		}, true);


	//Create Click listner for More button
	listener.addEvent(document.getElementById('btnMore'), "click", function(e){
			showHideLayers();
		}, true);

	//Create Show/Hide hover effect of more button elements
	var moreTimerId=0;

	//Create click listeners for More elements
	for (var i=0;i<MORE_NUM ;i++ )
	{
		//alert("more checkbox id " + i);
		listener.addEvent(document.getElementById('chkMore'+i), "click", function(e){
			mapMore(this);
		}, true);

		selEventArray.push(0);
	}

	//Create Click listner for moreAll
	listener.addEvent(document.getElementById('moreAll'), "click", function(e){
			if (this.style.textDecoration=="underline")
				hideAll();
		}, true);
}

function mapMore(elm)
{
	var btn = document.getElementById("btnMore");
	//alert(btn.innerHTML.indexOf("<b>") + "\n" + selEventArray.toString().indexOf("1") + "\n" + document.getElementById("wrapMore").className);
	if (document.getElementById("wrapMore").className=="mapBtn" && selEventArray.toString().indexOf("1")>-1)
	{
		for (var i in selEventArray)
		{
			selEventArray[i]=0;
		}
	}
	if (elm.checked)
	{
		selEventArray[(elm.name*1)]=1;
	}
	else
	{
		selEventArray[(elm.name*1)]=0;
	}
	mapChkMore(elm.name);
}

//More button toggle current or previously selected on or off
function showHideLayers()
{
	var toggle=false;

	if (!printMap)
	{
		//var btn = document.getElementById("btnMore");
		var btn = document.getElementById("wrapMore");
		//toggle = btn.innerHTML.indexOf("<b>")>-1 ? true : false;
		toggle = btn.className=="mapBtnDown" ? true : false;
	}
	
	if (toggle)
	{
		for (var i in selEventArray)
		{
			if (selEventArray[i]==1)
			{
				var chk = document.getElementById('chkMore'+(i*1));
				chk.checked=false;
				mapChkMore(i*1);
			}
		}
	}
	else
	{
		for (var i in selEventArray)
		{
			if (selEventArray[i]==1)
			{
				if (!printMap)
				{
					var chk = document.getElementById('chkMore'+(i*1));
					chk.checked=true;
				}
				mapChkMore(i*1);
			}
		}
	}
}

function showMore()
{
	clearTimeout(moreTimerId);
	document.getElementById("wrapBodyMore").style.display="block";
}

function hideMore()
{
	moreTimerId=setTimeout('document.getElementById("wrapBodyMore").style.display="none"',300);
}

function hideAll()
{
	for (var i in selEventArray)
	{
		if (selEventArray[i]==1)
		{
			var chk = document.getElementById('chkMore'+(i*1));
			chk.checked=false;
			selEventArray[i]=0;
			mapChkMore(i*1);
		}
	}
}


function mapChkMore(elm)
{
	switch (elm*1)
	{
	case 0: 
		moreCurEvts(elm);
		break;
	case 1:
		moreConst(elm);
		break;
	case 2:
		moreEmerPhone(elm);
		break;
	case 3:
		moreSnowRoutes(elm);
		break;
	}
	
	if (!printMap)
	{
		var numChk=numMore();
		var btn = document.getElementById("btnMore");
		var moreAll = document.getElementById("moreAll");

		if (numChk>0)
		{
			//btn.innerHTML="<b>More...(" + numChk +")</b>";
			document.getElementById("wrapMore").className="mapBtnDown";
			/*btn.style.height="14px";
			btn.style.width="83px";
			btn.style.borderTop="1px solid #345684";
			btn.style.borderLeft="1px solid #345684";
			btn.style.borderRight="1px solid #6c9ddf";
			btn.style.borderBottom="1px solid #6c9ddf";
	*/
			moreAll.style.color="#990000";
			moreAll.style.textDecoration="underline";
		}
		else
		{
			//btn.innerHTML="More...";
			document.getElementById("wrapMore").className="mapBtn";
			/*btn.style.height="15px";
			btn.style.width="84px";
			btn.style.borderTop="0px";
			btn.style.borderLeft="0px";
			btn.style.borderRight="1px solid #b2b2b2";
			btn.style.borderBottom="1px solid #b2b2b2";
	*/
			moreAll.style.color="#CCC";
			moreAll.style.textDecoration="none";
		}
	}
}

//Return number of More elements checked
function numMore()
{
	var count=0;
	for (var i=0;i<MORE_NUM ;i++ )
		if (document.getElementById('chkMore'+i).checked)
			count++
	return count;
}

function getMoreToggle(elm)
{
	var rtnBool = true;

	if (!printMap)
	{
		rtnBool = document.getElementById(elm).checked ? true : false;
	}

	return rtnBool
}

function moreCurEvts(elm)
{
	if (getMoreToggle('chkMore'+elm))
	{
		_gaq.push(['_trackEvent', 'Campus Map', 'More', 'Events clicked']);

		addEvents();
	}
	else
	{
		removeEvents();
	}
}

function moreEmerPhone(elm)
{
	if (getMoreToggle('chkMore'+elm))
	{
		_gaq.push(['_trackEvent', 'Campus Map', 'More', 'Emergency Phones clicked']);

		for(i = 0; i < markerArray[BLUE_PHONES].length-1; i++)
		{
			markerEnabledArray[BLUE_PHONES][i] = 3;
			enableMarker(BLUE_PHONES, i);
		}
	}
	else
	{
		for(i = 0; i < markerArray[BLUE_PHONES].length-1; i++)
		{
			markerEnabledArray[BLUE_PHONES][i] = 0;
			disableMarker(BLUE_PHONES, i);
		}
	}
}

function moreConst(elm)
{
	if (getMoreToggle('chkMore'+elm))
	{
		_gaq.push(['_trackEvent', 'Campus Map', 'More', 'Construction clicked']);

		map.addOverlay(constructionArea);
		showLegend("constructionLegend");
	}
	else
	{
		map.removeOverlay(constructionArea);
		hideLegend("constructionLegend");
	}
}

function moreRedbirdRide(elm)
{
	if (getMoreToggle('chkMore'+elm))
	{
		map.addOverlay(busRoute1);
	}
	else
	{
		map.removeOverlay(busRoute1);
	}
}

function moreSnowRoutes(elm)
{
	if (getMoreToggle('chkMore'+elm))
	{
		_gaq.push(['_trackEvent', 'Campus Map', 'More', 'Snow Routes clicked']);

		for (var i in snowRoutes)
		{
			if (snowRoutes[i].isHidden())
				snowRoutes[i].show();
			else
				map.addOverlay(snowRoutes[i]);

			snowRoutes[i].setStrokeStyle({weight:8 / (19 - (map.getZoom()*1))});
		}	
	}
	else
	{
		for (var i in snowRoutes)
		{
			snowRoutes[i].hide();
		}
	}
}

//////////////////////////////////////
//            moreSnow              //
//////////////////////////////////////

var snowRoutesData = {
	color: "#ff6600",
	weight: 7,
	opacity: 0.7,
	numLevels: 18,
	zoomFactor: 2, 
    numLevels: 18
};

var snowRoutesArray = [
	{points:"owfvFtnc~Oo@bCbB?}CANEE[[UgBGAmF", levels:"PDECABCEP"}, //Watterson
	{points:"g_gvFdic~OFnL_FLmAqA@_BCc@a@@?aA", levels:"PFEC?BBP"}, //SLB to Manchester
	{points:"mhgvFntc~O@n@D`@Kh@DfAB|ASLAjCkAC?fAW@AjA", levels:"P?@A?ABDDABP"}, //Milner
	{points:"ujgvFjdd~OdFEOs@f@jBA`AaA?" , levels:"PCEBDP"}, // Felmley Schroeder
	{points:"ocgvFbdd~ObBjBbNAYCG_HwLEDbHvB?IyGpB?N|E?|@bAHPV?hDuPPFcEX?" , levels:"PDGBEFFDDE?CBDGEBP"}, // Quad
	{points:"alfvFbdd~OUOGgAcBEZi@?}AX?" , levels:"PACDBBP"}, //CVA
	{points:"}xfvFd~c~O@gEm@Gl@CHu@" , levels:"PCCBP"}, //Old Union to Stevenson
	{points:"ezfvF~tc~OMRARQLGT@RLFe@~Aw@Ff@F?p@Sb@" , levels:"P@@@B@BCCCAP"}, //Stevenson to Hovey
	{points:"mlgvFvjd~OBtBjCA?ZyFD?V" , levels:"PDBEBP"}, //Bone
	{points:"mggvFbod~OFbEPfA[l@Y~@a@fBWd@_@~@_@jB?~AEl@AfAPdBB`CGtBgBxClAkBBhA" , levels:"PADA?A?AD??A@ADDDP"}, //West Campus
];

var snowRoutes = new Array();

for (var i in snowRoutesArray)
{
	var route = new GPolyline.fromEncoded({
    color: snowRoutesData.color,
    weight: snowRoutesData.weight,
    opacity: snowRoutesData.opacity,
    points: snowRoutesArray[i].points,
    levels: snowRoutesArray[i].levels,
    zoomFactor: snowRoutesData.zoomFactor, 
    numLevels: snowRoutesData.numLevels
	}, {clickable:false});

	snowRoutes.push(route);
}

//////////////////////////////////////
//         moreRedbirdRide          //
//////////////////////////////////////

var busRoute1 = new GPolyline.fromEncoded({
  color: "#0099FF",
  weight: 8,
  opacity: 0.4,
  points: "etgvFl}e~OBvEdRMMmCEmSc@cDs@kBo@uA_@_BOmCCq[j@sBb@w@RmAEkHbEMjJE~D~Jr@hAgDHhDIxCrE`BtDR[b@aE@{BOiO}ONmJDiJTFjIp@fCPjABpSA`GRnC\\xAdB`E`@dDDrL{FHc@Mm@u@aAIkAd@_@F]@q@VIPIn@@tA",
  levels: "PEGADB?ABECAACG@FAEEDAGAC@I?AHC@C?DBABDGCABE@?AD@AP",
  zoomFactor: 2, 
  numLevels: 18
});

//////////////////////////////////////
//            moreConst             //
//////////////////////////////////////

var constructionArea = new GPolygon.fromEncoded({
  polylines: [
    {points: "csfvFppc~O[@EK?gAs@Ak@}@?y@q@@?]hA@?jAb@j@d@?TRJZA|@", ///KNR Building
     levels: "PABBCBBBFCCBACAP",
     color: "#f60",
     opacity: 0.7,
     weight: 2,
     numLevels: 18,
     zoomFactor: 2}],
  fill: true,
  color: "#f60",
  opacity: 0.3,
  outline: false
}, {clickable:false});

function changeMapType(elm)
{
	var classISU = "mapBtnDown";
	var classSat = "mapBtn";

	if (elm.innerHTML=="Illinois State")
	{
		map.setMapType(customMap);
	}
	else
	{
		map.setMapType(G_HYBRID_MAP);
		classISU = "mapBtn";
		classSat = "mapBtnDown";
	}

	document.getElementById("mapTypeISU").className=classISU;
	document.getElementById("mapTypeSat").className=classSat;
	//this.className='mapBtnDown1'
}

function getMoreQS()
{
	var more="";

	if (document.getElementById("wrapMore").className=="mapBtnDown")
	{
		more += "1";
		for (var i=0;i<selEventArray.length;i++)
		{
			more = more + selEventArray[i];
		}
		//alert(more);
		more = "&a=" + convertLayerString(more, 0);
	}

	return more;
}
