var listMenu;
var iQmultimedia = {

	assetRoot: '/site_assets/',

	events: [], // array of all events, to be supplied in the template

	eventInfoSettings: {
		'containerWidth': 992,
		'topIndent': 307,
		'offsetX': 8,
		'offsetY': 15
	},
	
	DOMReady: function(callBack, scope) {
		/*
			Cross-browser DOM ready function
			http://www.ts0.com/domReady.js
		*/
		var scope = scope || window;
		var args = [];
		for (var i=2, len = arguments.length; i < len; ++i) {
			args.push(arguments[i]);
		};
		if (navigator.userAgent.match(/WebKit/)) {
			(function() {
				if(document.readyState != 'complete' && document.readyState != 'loaded')
					return setTimeout(arguments.callee, 1);
				callBack.apply(scope, args);
			})();
		} else if (document.addEventListener) {
			document.addEventListener("DOMContentLoaded", function(){callBack.apply(scope, args);}, false);
		} else if (document.all) {	
			if(!document.getElementById('WhenDomReady_element')) {
				document.write("<scr" + "ipt id=\"WhenDomReady_element\" defer=true " + "src=//:><\/scr" + "ipt>");
			}
	
			document.getElementById('WhenDomReady_element').attachEvent("onreadystatechange",function() {
				if(document.getElementById('WhenDomReady_element').readyState=="complete") {
					callBack.apply(scope, args);
				}
			});
		} else {
			scope.onload = callBack;
		}
	},

	init: function() {
		// Drop-down menus
		if(FSMenu) {
			listMenu = new FSMenu('listMenu', true, 'display', 'block', 'none');
			listMenu.animations[listMenu.animations.length] = FSMenu.animClipDown;
			
			var arrow = null;
			if(document.createElement && document.documentElement) {
				arrow = document.createElement('img');
				arrow.src = iQmultimedia.assetRoot + 'images/img-nav-arrow.gif';
				arrow.alt = '';
				arrow.className = 'subind';
			}
			
			listMenu.activateMenu('mainmenu', arrow);

			// Exposing this variable via conditional comments
			if(window.ie6) {
				addEvent(listMenu, 'show', function(mN) { setTimeout(this.myName + '.ieSelBoxFixShow("' + mN  + '")', 10) }, true);
				addEvent(listMenu, 'hide', function(mN) { this.ieSelBoxFixHide(mN) }, true);
			}
		}
		
		
		// Flash text replacement
		if(typeof sIFR == 'function') {
			sIFR.replaceElement(
				named({
					sSelector: '.maincontent h2',
					sFlashSrc: iQmultimedia.assetRoot + 'swf/franklingothicheavy.swf',
					sColor: '#ed1c24',
					sLinkColor: '#ed1c24',
					sBgColor: '#000000',
					sWmode: 'opaque'
				})
			);
		};


		// Header logo Flash replacement
		if(SWFObject) {
			var so = new SWFObject(iQmultimedia.assetRoot + 'swf/logo.swf', 'flashLogo', '610', '245', '6');
			so.write('logo');
		}
		
		
		// Event calendar
		if(document.getElementById && document.getElementById('eventcalendar')) {
			// Turn off the "Go" button in the month selector
			var eventMonthSelect;
			if(eventMonthSelect = document.getElementById('eventmonthselect')) {
				var inputEls = eventMonthSelect.getElementsByTagName('input');
				eventMonthSelect.removeChild(inputEls[0]);
				
				var selectEls = eventMonthSelect.getElementsByTagName('select');
				selectEls[0].onchange = function() {
					this.parentNode.parentNode.submit();
					return true;
				}
			}
		
			// Turn on the event information hovers
			iQmultimedia.recalculateOffsets();
			window.onresize = iQmultimedia.recalculateOffsets;
		}
	},
	
	recalculateOffsets: function() {
		var widthOffset = 0;
		var scrollWidth;
		if(scrollWidth = (document.documentElement.scrollWidth ?  document.documentElement.scrollWidth : document.body.scrollWidth)) {
			widthOffset = (scrollWidth - iQmultimedia.eventInfoSettings.containerWidth) / 2;
		}
		
		iQmultimedia.eventInfoSettings.calcOffsetX = iQmultimedia.eventInfoSettings.offsetX - widthOffset;
		iQmultimedia.eventInfoSettings.calcOffsetY = iQmultimedia.eventInfoSettings.offsetY - iQmultimedia.eventInfoSettings.topIndent;
		
		return true;
	},
	
	mouseLoc: function(evt) {
		if(!evt)
			evt = window.event;
		
		if (evt.pageX)
			return [evt.pageX, evt.pageY];
		else if (evt.clientX)
			return [
				evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft),
				evt.clientY + (document.documentElement.scrollTop ?  document.documentElement.scrollTop : document.body.scrollTop)
			];
		else return [0,0];
	},

	attachEvents: function() {
		var eventArray = iQmultimedia.events;
		
		for(iQevent in eventArray) {
			var cell;
			if(cell = document.getElementById('whatsonevent' + iQevent)) {
				var hoverItem = document.createElement('div');
				hoverItem.className = 'eventinfohover ' + eventArray[iQevent]['class'];
				hoverItem.innerHTML = '<p class="date">' + eventArray[iQevent]['date'] + '</p><p class="title">' + eventArray[iQevent]['title'] + '</p>';
				
				if(eventArray[iQevent]['details']) {
					hoverItem.innerHTML += '<div class="details">' + eventArray[iQevent]['details'] + '</div>';
				}
				
				hoverItem.id = 'eventinfo' + iQevent;
				
				var eventCalendar;
				if(eventCalendar = document.getElementById('eventcalendar')) {
					
					eventCalendar.parentNode.insertBefore(hoverItem, eventCalendar);
				
					cell.onmousemove = function(e) {
						if(document.getElementById) {
							var eventID = this.id.substring(12);
							var hoverItem;
							if(hoverItem = document.getElementById('eventinfo' + eventID)) {
								var mouseLoc = iQmultimedia.mouseLoc(e);
								hoverItem.style.left = (parseInt(mouseLoc[0]) + iQmultimedia.eventInfoSettings.calcOffsetX) + 'px';
								hoverItem.style.top = (parseInt(mouseLoc[1]) + iQmultimedia.eventInfoSettings.calcOffsetY) + 'px';
							}
						}
						
						return true;
					}
					
					cell.onmouseover = function(e) {
						if(document.getElementById) {
							var eventID = this.id.substring(12);
							var hoverItem;
							if(hoverItem = document.getElementById('eventinfo' + eventID)) {
								hoverItem.style.display = 'block';
							}
						}
						return true;
					}
					
					cell.onmouseout = function(e) {
						if(document.getElementById) {
							var eventID = this.id.substring(12);
							var hoverItem;
							if(hoverItem = document.getElementById('eventinfo' + eventID)) {
								hoverItem.style.display = 'none';
							}
						}
						return true;
					}	
				}
			}
		}
	}
}

/* IE6 iframe fix; conditional comments keep execution speed fast for other browsers */
/*@cc_on

FSMenu.prototype.ieSelBoxFixShow = function(mN, delayed) {
	with(this) {
		var m = menus[mN];
		if(!isIE || !window.createPopup)
			return;

		if(navigator.userAgent.match(/MSIE ([\d\.]+)/) && parseFloat(RegExp.$1) > 6.5)
			return;
		
		if(!m.ifr) {			
			m.ifr = document.createElement('iframe');
			m.ifr.src = 'about:blank';
			with(m.ifr.style) {
				position = 'absolute';
				border = '2px solid lime';
				filter = 'progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';
			}
			m.lyr.ref.parentNode.insertBefore(m.ifr, m.lyr.ref);
		}
 
		// Position and show it on each call.
		with(m.ifr.style) {
			left = m.lyr.ref.offsetLeft + 'px';
			top = m.lyr.ref.offsetTop + 'px';
			width = m.lyr.ref.offsetWidth + 'px';
			height = m.lyr.ref.offsetHeight + 'px';
			visibility = 'visible';
		}
	}
};

FSMenu.prototype.ieSelBoxFixHide = function(mN) {
	with(this) {
		if(!isIE || !window.createPopup)
			return;

		var m = menus[mN];
		if(m.ifr)
			m.ifr.style.visibility = 'hidden';
	}
};

@*/;

//addEvent(window, 'load', iQmultimedia.init);
iQmultimedia.DOMReady(iQmultimedia.init);