///////////////////////////////////////
// Calander tile functions
///////////////////////////////////////
window.addEvent('load', function(){
	if($("calender")) {
		
		
		offOpacity = 1;
		activeDay = $("calender-tiles").getFirst("li[class=day-item-active]");
		if (suffle.length) {
			activeDay = $("calender-tiles").getElements("li")[suffle[0]] ;
			}
		if(!activeDay) {
			activeDay = $("calender-tiles").getFirst("li[class=day-item]") ;
			}
		
		//activeDay = $("calender-tiles").getChildren("li")[0] ;
		calenderSlide = null;
		daysQue = new ArrayQue(suffle);
		// Slide between highlight days
		function suffleDays () {
			if(suffle.length) {
				showDay = $("calender-tiles").getElements("li")[daysQue.get("next")]
				displayCalenderTileInfo(showDay)
				}
			}
		
		
		// Position the orange border on the tile
		function positionCalanderActiveIndicator() {
			
			if(activeDay) {
				var targetElement = activeDay.getCoordinates($("calender-tiles"))
				if (Browser.Engine.trident) targetElement = activeDay.getCoordinates()
				new Fx.Morph($("active-day"), {
													wait:false,duration:100,
													onComplete : function () {
														activeDay.setOpacity(1)
														if($("active-day").getStyle("display") != "block") {
															$("active-day").setStyle("display", "block");
															}
														}.bind(this)
													}).start({
														left:targetElement.left,
														top:targetElement.top
														});
														setEventInfoPanel()
				}
			}
		
		
		function displayCalenderTileInfo(target) {
			if (activeDay != target && target.get("class") != "day-item-blank") {
				activeDay = target;
				$("calender-tiles").getElements("li[class^=day-item]").setOpacity(offOpacity);
				positionCalanderActiveIndicator()
				}
			}
			
		function setEventInfoPanel() {
			var data = JSON.decode(activeDay.getElement("a").get("rel"));
			$("event-details").getElement("h3").set("text", data.dateString);
			$("event-details").getElement("h2").set("text", data.title);
			$("event-details").getElement("div[class=description]").set("html", data.description);// + "<br /><br /><a href=\"mardi-gras-2010/events/index.cfm?date=" + escape(data.dateValue) + "\"><span>View all events on this day</span></a>");
			}
		
		function setCalenderTiles () {
			
			$("calender-tiles").getElements("img[class=tileImage]").setStyle("display", "block");
			$("calender-tiles").getElements("img[class=largeImage]").setStyle("display", "none");
			
			$("calender-tiles").getElements("a").removeEvent("mouseover");
			
			if ($("calender-left-arrow")) {
				$("calender-left-arrow").removeEvents();
				$("calender-right-arrow").removeEvents();
				}
			$("calender").removeEvents();
			$("calender-tiles").removeEvents();
			$("active-day").removeEvents();
			$("calender").set("class", "calender-tiles");
			$("calender-tiles").getElements("li[class=day-item-active]").setProperty("class", "day-item");
			
			suffleDaysTimer = suffleDays.periodical(10000);
			
			$("calender").addEvent("mouseleave", function () {
				$("active-day").setStyle("display", "none");
				$("calender-tiles").getElements("li[class^=day-item]").setOpacity("1");
				//$("calender-tiles").getElements("li[class=day-item]").setOpacity("1");
				suffleDaysTimer = suffleDays.periodical(10000);
				displayCalenderTileInfo(activeDay)
				});
			$("calender-tiles").addEvent("mouseenter", function () {
				$clear(suffleDaysTimer)
				});
			$("calender-tiles").addEvent("mouseleave", function () {
				//activeDay.setOpacity(".2");
				activeDay = $("calender-tiles").getElement("li[class=day-item-active]")
				if(!activeDay) activeDay = $("calender-tiles").getFirst("li");
				positionCalanderActiveIndicator()
				});
			//alert($("calender-tiles").getElements("li[id=null]"))
			
			$("calender-tiles").getElements("a").each(
				function (el) {
					if(el.getParent().get("id") != "active-day") {
						el.addEvent("mouseover", function (ev) {
							$("active-day").set("title", el.getParent("li").get("title"));
							displayCalenderTileInfo(el.getParent("li"));
							});	
						}
					}
				);
				
			$("active-day").getElement("a").addEvent("click", function (ev) {
				ev.stop();
				
				var data = JSON.decode(activeDay.getElement("a").get("rel"));
				
				if(activeDay.getElement("a").get("href") == "/index.cfm#") {
					location.href = "/mardi-gras-2010/events-calendar/index.cfm?date=" + escape(data.dateValue)
					 }
				else {
					location.href = activeDay.getElement("a").get("href");
					}
				
				/* */
				var currentlySelected = $("calender-tiles").getElement("li[class=day-item-active]");
				if(currentlySelected) {
					new Fx.Morph(currentlySelected, {wait:false,duration:100}).start({"opacity": offOpacity});
					}
				console.debug(currentlySelected.get("html"))
				
				$("calender-tiles").getElements("li[class=day-item-active]").setProperty("class", "day-item");
				activeDay.setProperty("class", "day-item-active");
				setEventInfoPanel();
				
				});	
					
			if ($("calender-left-arrow")) {
				$("calender-left-arrow").addEvent("click", function(ev) {
					ev.stop(); 
					if(activeDay.getPrevious() && activeDay.getPrevious().get("class") != "day-item-blank") {
						activeDay.setProperty("class", "day-item");
						activeDay.getPrevious().setProperty("class", "day-item-active");
						displayCalenderTileInfo(activeDay.getPrevious());
						}
					else {
						var items = $("calender-tiles").getElements("li[class=day-item]")
						activeDay.setProperty("class", "day-item");
						items[items.length-1].setProperty("class", "day-item-active");
						displayCalenderTileInfo(items[items.length-1]);
						}
					});
					
				$("calender-left-arrow").addEvent("mouseover", function(ev) {
					$("calender-tiles").getElements("li[class!=day-item-active]").setOpacity(offOpacity);
					activeDay = $("calender-tiles").getElement("li[class=day-item-active]")
					if(!activeDay) activeDay = $("calender-tiles").getFirst("li");
					positionCalanderActiveIndicator(activeDay)
					});	
					
				$("calender-right-arrow").addEvent("click", function(ev) {
					ev.stop(); 
					
					if(activeDay.getNext().get("tag") == "li" && activeDay.getNext().get("id") != "active-day" && activeDay.getNext().get("class") != "day-item-blank") {
						activeDay.setProperty("class", "day-item");
						activeDay.getNext().setProperty("class", "day-item-active");
						displayCalenderTileInfo(activeDay.getNext());
						}
					else {
						activeDay.setProperty("class", "day-item");
						$("calender-tiles").getChildren("li")[0].setProperty("class", "day-item-active");
						displayCalenderTileInfo($("calender-tiles").getChildren("li")[1]);
						}
					});	
				$("calender-right-arrow").addEvent("mouseover", function(ev) {
					$("calender-tiles").getElements("li[class!=day-item-active]").setOpacity(offOpacity);
					activeDay = $("calender-tiles").getElement("li[class=day-item-active]")
					if(!activeDay) activeDay = $("calender-tiles").getFirst("li");
					positionCalanderActiveIndicator(activeDay)
					});
				}
				
			$("calender-tiles").getElements("li[class^=day-item]").setOpacity(offOpacity);
			if(activeDay) {
				displayCalenderTileInfo(activeDay);
				positionCalanderActiveIndicator();
				activeDay.setProperty("class", "day-item-active");
				}
			}
		
		function setCalenderByDay () {
			$clear(suffleDaysTimer)
			$("calender-tiles").getElements("img[class=tileImage]").setStyle("display", "none");
			$("calender-tiles").getElements("img[class=largeImage]").setStyle("display", "block");
			
			$("calender-tiles").getElements("a").removeEvent("mouseover");
			
			$("calender-left-arrow").removeEvents();
			$("calender-right-arrow").removeEvents();
			$("calender").removeEvents();
			$("calender-tiles").removeEvents();
			
			$("calender").set("class", "calender-by-day");
			
			calenderSlide = new SlideShow($("calender-tiles"), {
				delay : 7000, 
				duration : 500, 
				position : activeDay,
				onInitialize : function () {
					
					//alert($("calender-tiles").getElements("li[class^=day-item-blank]"))
					this.setChildren($("calender-tiles").getElements("li[class!=day-item-blank]"));
					var c = this.getCount();
					$("calender-left-arrow").addEvent("click", function(ev) {
							new Event(ev).stop();
							this.prev();
							}.bindWithEvent(this));
					$("calender-right-arrow").addEvent("click", function(ev) {
							new Event(ev).stop();
							this.next();
							}.bindWithEvent(this));
					//this.start();
					},
				onComplete : function () {
					activeDay = this.getItem();
					setEventInfoPanel()
					}
				});
			}
		
		if($("calender-grid")) {
			$("calender-grid").addEvent("click", function (ev) {
				ev.stop();
				
				if ($("calender").get("class") != "calender-tiles") {
					if($defined(calenderSlide)) {
						calenderSlide.setChildren($("calender-tiles").getElements("li"));
						calenderSlide.dispose();
						}
				
					$("calender-grid").addClass("active");
					$("calender-block").removeClass("active");
					setCalenderTiles();
					}
				});
			}
		if ($("calender-block")) {
			$("calender-block").addEvent("click", function (ev) {
				ev.stop();
				
				if ($("calender").get("class") != "calender-by-day") {
					$("calender-grid").removeClass("active");
					$("calender-block").addClass("active");
				
					 setCalenderByDay();
					 }
				});
			}
		// set all the tiles to be see through
		if ($("calender").get("class") == "calender-tiles") {
			setCalenderTiles();
			if ($("calender-grid")) {
				$("calender-grid").addClass("active");
				}
			}
		else {
			setCalenderByDay();
			if ($("calender-block")) {
				$("calender-block").addClass("active");
				}
			}
		}
	});