


cafetasteMap = function() {
	var Evt = YAHOO.util.Event;
	var Dom = YAHOO.util.Dom;
	
	return {
	
		init: function() {
			// load map
			this.drawMap();
			// add event listener
			Evt.on('mapWrapper', 'click', this.handleClick, this, true);
		},
		
		handleClick: function(ev) {
			var target = Evt.getTarget(ev);
			if (target.id=='closeMap') {
				Dom.removeClass('mapWrapper', 'large');
			} else {
				if (!Dom.hasClass('mapWrapper', 'large')) {
					Dom.addClass('mapWrapper', 'large');
					// clear curren map
					this.map = null;
					// redraw map
					this.drawMap();
					this.map.addControl(new GLargeMapControl());
				};
			};
		},
		
		drawMap: function() {
			// clear curren map
			this.map = null;
			this.mapObj = Dom.get("map");
			this.mapObj.innerHTML = '';
			// draw new map
			if (GBrowserIsCompatible()) {
				this.map = new GMap2(this.mapObj);
				this.map.setCenter(new GLatLng(43.641735,-79.431613), 15);
				this.cafeTaste = new GLatLng(43.641735,-79.431613);
				this.map.addOverlay(new GMarker(this.cafeTaste));
			};
		},
		

		EOF:null
		
	};
}();

cafetaste = function() {
	var Evt = YAHOO.util.Event;
	var Dom = YAHOO.util.Dom;
	
	return {
		init: function() {
			Evt.on(document.body, 'click', this.handleClick, this, true);
		},
		
		handleClick: function(ev) {
			var targetObj = Evt.getTarget(ev);
			// get TD
			while ( !Dom.hasClass(targetObj, 'day') && targetObj.id!='calendarDisplay' ) {
				targetObj = targetObj.parentNode;
				// if user clicks outside of calendar area, go away
				if (targetObj == document) { 
					this.hideDay();
					return;
				};
			};
			// as long as it's not the calendarDisplay obj, proceed
			if (targetObj.id!='calendarDisplay') {
				this.displayDay(targetObj);
			};
		},
		
		displayDay: function(targetObj) {
			if (targetObj.id == '')
				this.hideDay();
			// get raw data
			var dataObj = Dom.get('event-'+ targetObj.id);
			if (dataObj) {
				// display
				var displayObj = Dom.get('dayDetails');
				// hide if already visible
				if (Dom.hasClass(displayObj, 'visible')) {
					this.hideDay();
					return;
				}
				// show
				if (displayObj) {
					// insert content
					displayObj.innerHTML = dataObj.innerHTML;
					// calculate size & position
					var widthSize = 360;
					var topPos = (targetObj.offsetTop + 20) +'px';
					var leftPos = (targetObj.offsetLeft < 400) ? (targetObj.offsetLeft - 20) +'px' : (targetObj.offsetLeft - widthSize + 220) + 'px';
					// make changes
					displayObj.style.top = topPos;
					displayObj.style.left = leftPos;
					displayObj.style.width = widthSize + 'px';
					// make visible
					Dom.addClass(displayObj, 'visible');
				}
			} else {
				this.hideDay();
			}
		},
		
		hideDay: function(ev) {
			// hide day
			var displayObj = Dom.get('dayDetails');
			if (displayObj)
				Dom.removeClass(displayObj, 'visible');
		},
		
		EOF:null
	}
}();
cafetaste.init();
