var eventAddresses = {
	
	// Event addresses for Toronto
	t_evt01:{address:'215 Carlingview Dr,<br>Etobicoke, ON,<br>M9W 5X8',message:''},
	t_evt02:{address:'5555 Dundas St. W.,<br>Etobicoke, ON,<br>M9B 6C1',message:''},
	t_evt03:{address:'736 Kingston Road,<br>Pickering, ON,<br>L1V 1A8',message:''},
	t_evt04:{address:'4460 Fairview St.,<br>Burlington, ON,<br>L7L 5P9',message:''},
	t_evt05:{address:'2084 Lakeshore Rd.,<br>Burlington, ON,<br>L7R 1A3',message:''},
	t_evt06:{address:'1505 Guelph Line,<br>Burlington, ON,<br>L7R 3L7',message:''},
	t_evt07:{address:'1585 Warden Ave West,<br>Toronto, ON,<br>M1R 2S9',message:''},
	t_evt08:{address:'53 Main St. N.,<br>Markham, ON,<br>L3P 1X7',message:''},
	t_evt09:{address:'272 King Street North,<br>Waterloo, ON,<br>N2J 2Y9',message:''},
	t_evt10:{address:'1900 King Street East,<br>Hamilton, ON,<br>L8K 1W1',message:''},
	t_evt11:{address:'8189 Lundys Lane,<br>Niagara Falls, ON,<br>L2H 1H3',message:''},
	t_evt12:{address:'Brock University, 500 Glenridge Avenue,<br>St. Catherines, ON,<br>L2N 7G4',message:''},
	t_evt13:{address:'30 Main Street,<br>Grimsby, ON,<br>L3M 1R4',message:''},
	t_evt14:{address:'10 King George Road,<br>Brantford, ON,<br>N3R 5J7',message:''},
	t_evt15:{address:'8950 Yonge St.,<br>Thornhill, ON,<br>L4C 6Z7',message:''},
	t_evt16:{address:'35 Broadway Avenue,<br>Orangeville, ON,<br>L9W 1J7',message:''},
	t_evt17:{address:'1544 Bayview Ave.,<br>Toronto, ON,<br>M4G 3B6',message:''},
	t_evt18:{address:'146 Front St. W.,<br>Toronto, ON,<br>M5J 1G2',message:''},
	t_evt19:{address:'458 Yonge St.,<br>Toronto, ON,<br>M4Y 1W9',message:''},
	t_evt20:{address:'49 St Clair Avenue W,<br>Toronto, ON,<br>M4V 1K8',message:''},
	t_evt21:{address:'2749 Lakeshore Blvd. W.,<br>Etobicoke, ON,<br>M8V 1H2',message:''},
	t_evt22:{address:'535 Danforth Avenue,<br>Toronto, ON,<br>M4K 1P7',message:''},
	t_evt23:{address:'18025 Yonge St,<br>Newmarket, ON,<br>L3Y 8C9',message:''},
	
	// Event addresses for ottawa 
	o_evt01:{address:'1125 Colonel By Drive,<br>Ottawa, ON,<br>K1S 5B6',message:''},
	o_evt02:{address:'379 Preston Street,<br>Ottawa, ON,<br>K1S 4N1',message:''},
	o_evt03:{address:'101 York St,<br>Ottawa, ON,<br>K1N 5T4',message:''},
	o_evt04:{address:'399 Elgin Street,<br>Ottawa, ON,<br>K2P 1M9',message:''},
	o_evt05:{address:'1400 Clyde,<br>Ottawa, ON,<br>K2G 3H7',message:''},
	o_evt06:{address:'1760 St Laurent,<br>Ottawa, ON,<br>K1G 1A2',message:''},
	o_evt07:{address:'1525 Bank,<br>Ottawa, ON,<br>K1H 7Z1',message:''},
	o_evt08:{address:'39 Winners Circle Dr,<br>Arnprior, ON,<br>K7S 3G9',message:''},
	o_evt09:{address:'185 Pembroke St East,<br>Pembroke, ON,<br>K8A 3J6',message:''},
	o_evt10:{address:'4049 Carling Avenue,<br>Ottawa, ON,<br>K2K 2A4',message:''},
	o_evt11:{address:'117 Centrepointe Drive,<br>Nepean, ON,<br>K2G 5X3',message:''},
	o_evt12:{address:'15 Robertson Road,<br>Nepean, ON,<br>K2H 5Y7',message:''},
	o_evt13:{address:'1250 Main Street,<br>Stittsville, ON,<br>K2S 1S9',message:''},
	o_evt14:{address:'2 Court House Ave.,<br>Brockville, ON,<br>K6V 4T1',message:''},
	
	// Event addresses for calgary 
	c_evt01:{address:'219 8 Ave SW,<br>Calgary, AB,<br>T2R 1J3',message:''},
	c_evt02:{address:'9627 Macleod Trail SW,<br>Calgary, AB,<br>T2J 0P6',message:''},
	c_evt03:{address:'Crowfoot Terrace NW,<br>Calgary, AB,<br>T3G 4J8',message:''},
	c_evt04:{address:'730 17 Ave SW,<br>Calgary, AB,<br>T2S 0B7',message:''},
	c_evt05:{address:'506 10 Street NW,<br>Calgary, AB,<br>T2N 1W3',message:''},
	c_evt06:{address:'3575 20 Ave NE,<br>Calgary, AB,<br>T1Y 6R3',message:''},
	c_evt07:{address:'17-3802 Brentwood Road NW,<br>Calgary, AB,<br>T1W 3E9',message:''},
	c_evt08:{address:'53 High Street SE,<br>Calgary, AB,<br>T2Z 3T7',message:''},
	c_evt09:{address:'187-2515 90 Ave SW,<br>Calgary, AB,<br>T2V 0L8',message:''},
	c_evt10:{address:'909 Railway Ave,<br>Canmore, AB,<br>T1W 1P3',message:''},
	c_evt11:{address:'168-55 Castleridge blvd NE,<br>Calgary, AB,<br>T3J 3J8',message:''},
	c_evt12:{address:'606-500 Country Hills bvld NE,<br>Calgary, AB,<br>T3K 4Y7',message:''},
	c_evt13:{address:'C-1919 Southland Dr. SW,<br>Calgary, AB,<br>T2W 0K1',message:''},
	c_evt14:{address:'225-4307 130 Ave SE,<br>Calgary, AB,<br>T2Z 3V8',message:''},
	
	// Event addresses for edmonton 
	e_evt01:{address:'11248 104 Ave NW,<br>Edmonton, AB,<br>T5K 2X4',message:''},
	e_evt02:{address:'11113 87 Ave NW,<br>Edmonton, AB,<br>T6G 0X8',message:''},
	e_evt03:{address:'10387 82 Ave NW,<br>Edmonton, AB,<br>T6E 1Z9',message:''},
	e_evt04:{address:'Bourbon Street WEM - 8882 170st NW,<br>Edmonton, AB,<br>T5T 4M2',message:''},
	e_evt05:{address:'9927 178 Street NW,<br>Edmonton, AB,<br>T5T 6L8',message:''},
	e_evt06:{address:'200-10505 82 Ave NW,<br>Edmonton, AB,<br>T6E 1X2',message:''},
	e_evt07:{address:'17328 Stony Plain Road NW,<br>Edmonton, AB,<br>T5S 1K6',message:''},
	e_evt08:{address:'Inglewood Towne Centre 10-11Bellerose Dr,<br>St Albert, AB<br>T8N 5C9',message:''},
	e_evt09:{address:'5420 Calgary Trail NW,<br>Edmonton, AB,<br>T5G 0N3',message:''},
	e_evt10:{address:'11606 Jasper Ave NW,<br>Edmonton, AB,<br>T5K 0A3',message:''},
	
	// Event addresses for vancouver 
	v_evt01:{address:'729 Brunette Ave,<br>Coquitlam, BC,<br>V3K 1C8',message:''},
	v_evt02:{address:'1979 Brown Street,<br>Port Coquitlam, BC,<br>V3C 3A0',message:''},
	v_evt03:{address:'5764 Wharf Street,<br>Sechelt, BC,<br>V0N 3A0',message:''},
	v_evt04:{address:'3728 Clark Drive,<br>Vancouver, BC,<br>V5V 4Y6',message:''},
	v_evt05:{address:'135 Pemberton Ave,<br>North Vancouver, BC,<br>V7P 2R3',message:''},
	v_evt06:{address:'755 Richard\'s Street,<br>Vancouver, BC,<br>V6B 3A6',message:''},
	v_evt07:{address:'654 Nelson,<br>Vancouver, BC,<br>V6B 6K4',message:''},
	v_evt08:{address:'6511 Buswell,<br>Richmond, BC,<br>V6Y 3B5',message:''},
	v_evt09:{address:'11186-84th Ave,<br>Delta, BC,<br>V4C 2L7',message:''},
	v_evt10:{address:'20398 Dewdney Trunk Road,<br>Maple Ridge, BC,<br>V2X 3E3',message:''},
	v_evt11:{address:'350 Gifford Street,<br>New Westminster, BC,<br>V3M 7A3',message:''},
	v_evt12:{address:'2814 Gladwin Road,<br>Abbotsford, BC,<br>V2T 4S8',message:''},
	v_evt13:{address:'2627 Shaughnessy Street,<br>Port Coquitlam, BC,<br>V3C 3G5',message:''},
	v_evt14:{address:'19935 - 96th Ave,<br>Langley, BC,<br>V1M 3C7',message:''},
	v_evt15:{address:'320 6th Street,<br>New Westminster, BC,<br>V3L 3A8',message:''},
	v_evt16:{address:'1626 - 152nd Street,<br>Surrey, BC,<br>V4A 4N2',message:''},
	v_evt17:{address:'19580 56TH Ave,<br>Surrey, BC,<br>V3S 4N9',message:''},
	v_evt18:{address:'180 Georgia Street,<br>Vancouver, BC,<br>V6B 4P4',message:''},
	
	// Events addresses for Detroit - WHAT!
	d_evt01:{address:'216 King Street W,<br>Chatham, ON,<br>N7M 1E5',message:''},
	d_evt02:{address:'425 St Clair St,<br>Chatham, ON,<br>N7L 3K4',message:''},
	d_evt03:{address:'1202 Lambton Mall Road,<br>Sarnia, ON,<br>N7S 5R6',message:''},
	d_evt04:{address:'1030 Confederation Street<br>Sarnia, ON,<br>N7S 6H1',message:''},
	d_evt05:{address:'226 Front Sreet N,<br>Sarnia, ON,<br>N7T 5S5',message:''},
	d_evt06:{address:'914 Murphy RD,<br>Sarnia, ON,<br>N7S 5C4',message:''},
	d_evt07:{address:'63 Riverside Drive E,<br>Windsor, ON,<br>N9A 2S4',message:''},
	d_evt08:{address:'6675 Tecumseh Road E,<br>Windsor, ON,<br>N8T 1E7',message:''},
	d_evt09:{address:'3206 Sandwich Street,br>Windsor, ON,<br>N9C 1A8',message:''},
	d_evt10:{address:'3236 Sandwich Street,<br>Windsor, ON,<br>N9C 1A8',message:''},
	d_evt11:{address:'3422 Walker Road,<br>Windsor, ON,<br>N8W 3S3',message:''},
	d_evt12:{address:'46 Chatham Street W,<br>Windsor, ON,<br>N9A 5M6',message:''},
	d_evt13:{address:'4388 Walker Road,<br>Windsor, ON,<br>N8W 3T5',message:''},
	d_evt14:{address:'3087 Forest Glade Drive,<br>Windsor, ON,<br>N8R 1W6',message:''},
	d_evt15:{address:'670 Ouellette Avenue,<br>Windsor, ON,<br>N9A 1B9',message:''},
	d_evt16:{address:'4715 Tecumseh Road E,<br>Windsor, ON,<br>N8T 1B6',message:''},
	d_evt17:{address:'1545 Lauzon Road,<br>Windsor, ON,<br>N8S 3N4 ',message:''},
	d_evt18:{address:'400 Chilver Road,<br>Windsor, ON,<br>N8Y 2J7',message:''},
	d_evt19:{address:'1080 Erie St E,<br>Windsor, ON,<br>N9A 3Z1',message:''},
	d_evt20:{address:'405 Notre Dame Street,<br>Belle River, ON,<br>N0R 1A0',message:''}
}

window.addEvent('domready', initPage);

function initPage() {
	
	var evtBtns = $$('img.open_event');
	
	evtBtns.each(openEvent);

}

// Handles opening of accordian panes
function openEvent(el) {
	el.addEvent('click',function(event){
		event = new Event(event);
		
		if($('event_pane_open')) {
			closeEvent($('event_pane_open'));
		}
		
		event.target.src = event.target.src.replace(/open_/,"close_");
		
		event.target.id = 'event_pane_open';

		var tr = new Element('tr');
		var td = new Element('td',{'colspan':'6','styles':{'background':'none','height':'1px'}});
		
		td.injectInside(tr);
		
		tr.injectAfter(event.target.getParent().getParent());
		
		var evDiv = new Element('div',{'id':'evDiv','styles':{'height':'1px','overflow':'hidden','paddingTop':'12px'}});
		
		evDiv.injectInside(td);
		
		populateEventPane(evDiv,eventAddresses[event.target.getParent().getParent().id]);
		
		//transition height of td using mootools Fx class
		evDiv.tween('height',[1,156]);
		
		event.target.removeEvents('click');
		event.target.addEvent('click',function() {closeEvent(event.target)});
		
	});
}


// Handles Closing of accordian panes
function closeEvent(el) {
	
	img = el;
	div = $('evDiv');
	tr = div.getParent().getParent();
	
	img.src = img.src.replace(/close_/,"open_");
	img.id = '';
	
	var heightChange = new Fx.Tween(div);
	heightChange.start('height',[156,1]).chain(function(){tr.destroy();});
	
	img.removeEvents('click');
	openEvent(img);
}

function populateEventPane(td,address) {
	
	if(!address) {
		alert("There was an error extracting event address from mark up");
	} else {
		var gmap = new GoogleMapImage(address);
		gmap.displayImage(td);
		gmap.displayAddress(td);
		//gmap.displayMessage(td);
	}
	
}

var GoogleMapImage = new Class({
		
	initialize:function(evtAdds) {
		
		this.address = evtAdds.address;
		this.message = evtAdds.message;
		this.point = null;
		
	},
	
	displayImage: function(el) {
		
		var geocoder = new GClientGeocoder();
		
		_this = this;
		
		geocoder.getLatLng(this.address.replace(/(<br>|[\s])/g,'+'),function(point) {
			if(!point) {
				// return element letting Someone know there was an issue with the address
				errorEl = new Element('p',{'styles':{'float':'right','width':'180px'}}).set('text','GOOGLE: The specified address was not found.');
				errorEl.injectInside(el);
			} else {
				
				// build http request for static google maps image
				var imgHref='http://maps.google.com/staticmap?center='+point.y+','+point.x+'&zoom=15&size=186x127&key='+google_maps_key;

				var mapImg = new Asset.image(imgHref,{'class':'mapImg',onload:function() {
					this.injectInside(el);
				}});
				
				/*var mapCanvas = new Element('div',{'class':'mapImg'});
				
				mapCanvas.injectInside(el);
				
				var map = new GMap2(mapCanvas);
				
				map.setCenter(point,15);*/
				
			}
		});
	
	},
	
	displayAddress: function(el) {
		
		var addressDiv = new Element('div',{'styles':{'float':'left','font-size':'12px','color':'#8c8c8c','width':'180px','marginLeft':'12px'}});
		var addressPara = new Element('p').set('html',_this.address);
		
		addressPara.injectInside(addressDiv);
		
		var addressLink = new Element('a',{
			'href':'http://maps.google.com/maps?f=q&hl=en&geocode=&q='+this.address.replace(/(<br>|[\s])/g,'+'),
			'target':'_blank',
			'styles':{'color':'#dc3b1f'}
		}).set('text','Google Maps');
		
		addressLink.injectInside(addressDiv);
		
		addressDiv.injectInside(el);
		
	},
	
	displayMessage: function(el) {
		
		var messageDiv = new Element('div',{'styles':{'float':'left','font-size':'10px','color':'#8c8c8c','width':'150px'}});
		
		var messagePara = new Element('p').set('html',_this.message);
		
		messagePara.injectInside(messageDiv);
		
		messageDiv.injectInside(el);
		
	}
	
});
