var r = 1;
var B,C,S;

function ratio(){
	B = document.getElementById('bar');
	C = document.getElementById('calendar');
	S = document.getElementById('scroller');
	r = S.offsetHeight / C.offsetHeight;
	bar();
}
function bar(){
	B.style['height'] = (C.offsetHeight/r) - 4 + "px";
}



dragDrop = {
	keyHTML: '<a href="#" class="keyLink">#</a>',
	keySpeed: 10, // pixels per keypress event
	initialMouseX: undefined,
	initialMouseY: undefined,
	startX: undefined,
	startY: undefined,
	dXKeys: undefined,
	dYKeys: undefined,
	draggedObject: undefined,
	initElement: function (element) {
		if (typeof element == 'string'){
			element = document.getElementById(element);
		}
		element.onmousedown = dragDrop.startDragMouse;
//		element.innerHTML += dragDrop.keyHTML;
//		var links = element.getElementsByTagName('a');
//		var lastLink = links[links.length-1];
//		lastLink.relatedElement = element;
//		lastLink.onclick = dragDrop.startDragKeys;
	},
	startDragMouse: function (e) {
		dragDrop.startDrag(this);
		var evt = e || window.event;
		dragDrop.initialMouseX = evt.clientX;
		dragDrop.initialMouseY = evt.clientY;
		addEventSimple(document,'mousemove',dragDrop.dragMouse);
		addEventSimple(document,'mouseup',dragDrop.releaseElement);
		return false;
	},
	startDragKeys: function () {
		dragDrop.startDrag(this.relatedElement);
		dragDrop.dXKeys = dragDrop.dYKeys = 0;
		addEventSimple(document,'keydown',dragDrop.dragKeys);
		addEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		this.blur();
		return false;
	},
	startDrag: function (obj) {
		if (dragDrop.draggedObject)
			dragDrop.releaseElement();
		dragDrop.startX = obj.offsetLeft;
		dragDrop.startX = 0;
		dragDrop.startY = obj.offsetTop;
		dragDrop.draggedObject = obj;
		obj.className += ' dragged';
	},
	dragMouse: function (e) {
		var evt = e || window.event;
		var dX = evt.clientX - dragDrop.initialMouseX;
		var dX = evt.clientX - dragDrop.initialMouseX;
		var dY = evt.clientY - dragDrop.initialMouseY;
		dragDrop.setPosition(dX,dY);
		return false;
	},
	dragKeys: function(e) {
		var evt = e || window.event;
		var key = evt.keyCode;
		switch (key) {
			case 37:	// left
			case 63234:
				dragDrop.dXKeys -= dragDrop.keySpeed;
				break;
			case 38:	// up
			case 63232:
				dragDrop.dYKeys -= dragDrop.keySpeed;
				break;
			case 39:	// right
			case 63235:
				dragDrop.dXKeys += dragDrop.keySpeed;
				break;
			case 40:	// down
			case 63233:
				dragDrop.dYKeys += dragDrop.keySpeed;
				break;
			case 13: 	// enter
			case 27: 	// escape
				dragDrop.releaseElement();
				return false;
			default:
				return true;
		}
		dragDrop.setPosition(dragDrop.dXKeys,dragDrop.dYKeys);
		if (evt.preventDefault)
			evt.preventDefault();
		return false;
	},
	setPosition: function (dx,dy) {
		B.style['cursor']='move';
		var bY = dragDrop.startY + dy;
		if(bY >= 2 && bY < (C.offsetHeight - B.offsetHeight)-2 ) {
			dragDrop.draggedObject.style.right = dragDrop.startX+ 2 +'px';
			dragDrop.draggedObject.style.top = bY + 'px';
			S.style.top="-" + (bY-2)*r + 'px'
		}
	},
	switchKeyEvents: function () {
		// for Opera and Safari 1.3
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		addEventSimple(document,'keypress',dragDrop.dragKeys);
	},
	releaseElement: function() {
		B.style['cursor']='auto';
		removeEventSimple(document,'mousemove',dragDrop.dragMouse);
		removeEventSimple(document,'mouseup',dragDrop.releaseElement);
		removeEventSimple(document,'keypress',dragDrop.dragKeys);
		removeEventSimple(document,'keypress',dragDrop.switchKeyEvents);
		removeEventSimple(document,'keydown',dragDrop.dragKeys);
		dragDrop.draggedObject.className = dragDrop.draggedObject.className.replace(/dragged/,'');
		dragDrop.draggedObject = null;
	}
}

function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

// ==============================================

var active = true;
if (/WebKit/i.test(navigator.userAgent)) {
	var wk = (navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1] >= 530);
}
var o = false;
var maxZ = 9000;
var delay = 10000; // 10s
var lock = false;
var articleCount = test = intervalID = 0;
var currentSlide, currentSwitch, nextSlide, previousSlide, timerS, timerAP, slide1, slide2, pos ;


MEDIACENTRE = {
	showVideoTarget:function(src,thmb){
		var fade = true;
		obj = document.getElementById('videoTarget');
		obj.style['display']='block';
//		document.getElementById('swfBox').innerHTML='video id:'+ id;

		var so = new SWFObject("/swf/UAT-VideoPlayer-RM.R5v2HD.nob64.swf", "flash_object", "480", "320", "9.0.124", "#000000");
		so.addVariable("src", src);
		so.addVariable("thmb", thmb);
		so.addVariable("ap", '1');
		so.addParam("allowScriptAccess", "always");
		so.addParam("allowFullScreen", "true");

		so.write('swfBox');
		
		
		if(fade) {
			var i = 0;
			fader = setInterval( function(){ 
									if(i<=100) {
										if(document.documentElement.className == "ie"){
											obj.style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity="+ i +")";
										} else {
											obj.style['opacity']=(i/100);
										}
										i+=10; 
									} else {
										clearInterval(fader);fade = false; 
									}  
								},1);
		}
		if(active) {
			MEDIACENTRE.APinit(false);
			document.getElementById('pause').style['backgroundPosition']='-94px 0';
			active = false;
		}
	},
	closeParent:function() {
		document.getElementById('swfBox').innerHTML='<!--eviscerate ie-->';
		el = this.parentNode;
		el.style['display']='none';
		this.parentNode.style['opacity']='0';
	},
	
	APinit:function(e) {
		if(e != false) {
			intervalID = setInterval ( function(){MEDIACENTRE.slideClick("ff")}, delay );
		} else {
			clearInterval ( intervalID );
		}
	},
	showController:function() {
		if(!wk){
			var mc = document.getElementById('mediaController');
			if(document.documentElement.className == "ie") {
				mc.onmouseover = mc.style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
				mc.onmouseover = document.getElementById('pause').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
				mc.onmouseover = document.getElementById('previous').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
				mc.onmouseover = document.getElementById('next').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
			} else {
				mc.onmouseover = mc.style['opacity']='1';
			}
		}
	},
	hideController:function() {
		if(!wk){
			var mc = document.getElementById('mediaController');
			if(document.documentElement.className == "ie") {
				mc.onmouseover = mc.style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
				mc.onmouseover = document.getElementById('pause').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
				mc.onmouseover = document.getElementById('previous').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
				mc.onmouseover = document.getElementById('next').style['filter'] = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
			} else {
				mc.onmouseover = mc.style['opacity']='0';
			}
		}
	},
	slideInit:function() {
		// COUNT SLIDES SET ROLLOVER
		document.getElementById('target').onmouseover 	= MEDIACENTRE.showController;
		document.getElementById('target').onmouseout 	= MEDIACENTRE.hideController;
		if(document.getElementsByClassName) {
			var sl = document.getElementsByClassName('slide');
			articleCount = sl.length;
		} else {
			//COUNT OLD SCHOOL
			var sl = document.getElementById('slides').getElementsByTagName('div');
			var i = 0;
			while (i < sl.length) {
				if(sl(i).className == 'slide') {
					articleCount += 1;
				}
				i++;
			}
		}
		// SORT
		MEDIACENTRE.slideSorter();
	},
	playPause:function() {
		if(active) {
			this.style['backgroundPosition']='-94px 0';
			MEDIACENTRE.APinit(false);
			active = false;
		}else {
// UNCOMMENT THIS TO AUTO AVANCE AFTER UNPAUSING
// I CAN'T DECIDE WHICH WAY I PERFER
//			MEDIACENTRE.slideClick("ff");
			MEDIACENTRE.APinit(true);
			this.style['backgroundPosition']='0 0';
			active = true;
		}
	},
	slideSorter:function() {
		// SET DEFAULT INCASE WE GET CONFUSED
		if(!currentSlide) currentSlide = 1;
		MEDIACENTRE.nextSlide();
		MEDIACENTRE.previousSlide();
	},
	nextSlide:function() {
		if(currentSlide == articleCount) {
			nextSlide = 1;
		} else {
			nextSlide = eval(currentSlide + 1);
		}
	},
	previousSlide:function() {
		if(currentSlide != 1) {
			previousSlide = currentSlide - 1;
		} else {
			previousSlide = articleCount;
		}
	},
	slideClick:function(d) {
		if(lock == false) {
			lock = true;

			slide1 = document.getElementById('slide_'+currentSlide);
			if(d == 'ff') {
				slide2 = document.getElementById('slide_'+nextSlide);
				slide2.style['left']='1000px';
				//DO MOVE FF
				MEDIACENTRE.slideAnimaition('ff');
				currentSlide = nextSlide;
			} else {
				slide2 = document.getElementById('slide_'+previousSlide);
				slide2.style['left']='-1000px';
				//DO MOVE RR
				MEDIACENTRE.slideAnimaition(slide1,slide2,'rr');
				currentSlide = previousSlide;
			}
			MEDIACENTRE.slideSorter();
			MEDIACENTRE.updateRadio();
		}

	},
	slideAnimaition:function(d) {
		var end;
		pos = slide1.offsetLeft;
		if(d == 'ff') {
			end = -1000;
			if(pos > end) {
				slide1.style['left']=eval(slide1.offsetLeft - 200) + 'px';
				slide2.style['left']=eval(slide2.offsetLeft - 200) + 'px';
				timerS = setTimeout('MEDIACENTRE.slideAnimaition("ff")',50);
			} else {
				slide1.style['left']= end + 'px';
				slide2.style['left']= '0px';
				clearTimeout(timerS);
				lock = false;
			}
		}else{
			end = 998;
			if(pos < end) {
				slide1.style['left']=eval(slide1.offsetLeft + 200) + 'px';
				slide2.style['left']=eval(slide2.offsetLeft + 200) + 'px';
				timerS = setTimeout('MEDIACENTRE.slideAnimaition("rr")',50);
			} else {
				slide1.style['left']= end + 'px';
				slide2.style['left']= '0px';
				clearTimeout(timerS);
				lock = false;
			}
		}
	},
	updateRadio:function(id) {
		var obj = document.getElementById('mediaController');
		var li  = obj.getElementsByTagName('li');
		if(document.getElementsByClassName) {
			obj.getElementsByClassName('selected')[0].className='';
		}else{
			for(i=0;i<li.length;i++){
				li[i].className='';
			}
		}
		li[currentSlide-1].className="selected";
	}
};


function switchBox(e) {
	if(!currentSwitch) { currentSwitch = 2; }
	
	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	
	
	var l = targ.parentNode.getElementsByTagName('li');
	for(i=0;i<l.length;i++){
		if(l[i].className=='active'){
			addEvent(l[i], 'click', switchBox, false)
			document.getElementById('mainTab'+(i+1)).style.display="none";
		}
		l[i].className='';
	}
	targ.className='active';
	//targ.removeEventListener('click',switchBox,false);
	 removeEvent(targ, 'click', switchBox);
	//UGLY
	for(i=0;i<l.length;i++){
		if(l[i].className=='active'){
			l[i].parentNode.className='t'+(i+1);
			document.getElementById('mainTab'+(i+1)).style.display="block";
		}
	}
}


function switchTabs(e) {

	var targ;
	if (!e) var e = window.event;
	if (e.target) targ = e.target;
	else if (e.srcElement) targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;

	removeEvent(targ,'click',switchTabs);
//	this.removeEventListener('click',switchTabs,false);
	var a = document.getElementById('tabs').getElementsByTagName('a');
	var t = targ.parentNode;
	var s = document.getElementById('scores');
	var c = document.getElementById('calendar');
	for (var i=0;i<a.length;i++){
		a[i].className='closed';
//		a[i].addEventListener('click',switchTabs,false);
		addEvent(a[i],'click',switchTabs)
	}
	targ.className='open';
	//this.removeEventListener('click',switchTabs,false);
	removeEvent(targ,'click',switchTabs);
	t.className=(t.className == 'open' ? 'closed' : 'open');
	if(wk) {
		s.style.webkitAnimation=( o == false ? 'sLeft 500ms ease-out 0' : 'sRight 500ms ease-out 0 1 normal');
		c.style.webkitAnimation=( o == false ? 'cLeft 500ms ease-out 0 1 normal' : 'cRight 500ms ease-out 0 1 normal');
		s.addEventListener( 'webkitAnimationEnd', function( event ) { s.style['left']=( o == true ? '-178px' : '0'); }, false );
		c.addEventListener( 'webkitAnimationEnd', function( event ) { c.style['left']=( o == true ? '0' : '178px');  }, false );
		o = (o == false ? true : false);
	} else {
		s.style['left']=s.style['left']=( o == false ? '-178px' : '0');
		c.style['left']=c.style['left']=( o == false ? '0' : '178px'); 
		o = (o == false ? true : false);
	}
}

function addEvent(element, type, handler)
{
	if (element.addEventListener)
		element.addEventListener(type, handler, false);
	else
	{
		if (!handler.$$guid) handler.$$guid = addEvent.guid++;
		if (!element.events) element.events = {};
		var handlers = element.events[type];
		if (!handlers)
		{
			handlers = element.events[type] = {};
			if (element['on' + type]) handlers[0] = element['on' + type];
			element['on' + type] = handleEvent;
		}
	
		handlers[handler.$$guid] = handler;
	}
}
addEvent.guid = 1;

function removeEvent(element, type, handler)
{
	if (element.removeEventListener)
		element.removeEventListener(type, handler, false);
	else if (element.events && element.events[type] && handler.$$guid)
		delete element.events[type][handler.$$guid];
}

function handleEvent(event)
{
	event = event || fixEvent(window.event);
	var returnValue = true;
	var handlers = this.events[event.type];

	for (var i in handlers)
	{
		if (!Object.prototype[i])
		{
			this.$$handler = handlers[i];
			if (this.$$handler(event) === false) returnValue = false;
		}
	}

	if (this.$$handler) this.$$handler = null;

	return returnValue;
}

function fixEvent(event)
{
	event.preventDefault = fixEvent.preventDefault;
	event.stopPropagation = fixEvent.stopPropagation;
	return event;
}
fixEvent.preventDefault = function()
{
	this.returnValue = false;
}
fixEvent.stopPropagation = function()
{
	this.cancelBubble = true;
}
if (!window.addEventListener)
{
	document.onreadystatechange = function()
	{
		if (window.onload && window.onload != handleEvent)
		{
			addEvent(window, 'load', window.onload);
			window.onload = handleEvent;
		}
	}
}



function init() {
// quit if this function has already been called
	if (arguments.callee.done) return;
	arguments.callee.done = true;
// kill the timer
	if (_timer) clearInterval(_timer);
	
//		addEvent(document.getElementById('tab2'),'click',switchTabs);
		addEvent(document.getElementById('cancel'),'click',MEDIACENTRE.closeParent);
		addEvent(document.getElementById('pause'),'click',MEDIACENTRE.playPause);
		addEvent(document.getElementById('next'),'click',function() {MEDIACENTRE.slideClick('ff');});
		addEvent(document.getElementById('previous'),'click',function() {MEDIACENTRE.slideClick('rr');}); 
		addEvent(document.getElementById('mainTabs').getElementsByTagName('li')[0],'click',switchBox);
		addEvent(document.getElementById('mainTabs').getElementsByTagName('li')[2],'click',switchBox);
//		ratio();
		addScript();//Start scores
	MEDIACENTRE.slideInit();
	if(articleCount > 1)
		MEDIACENTRE.APinit();
};

/* for Mozilla/Opera9 */
if (document.addEventListener) {
	document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
/*@cc_on @*/
/*@if (@_win32)
	document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
	var script = document.getElementById("__ie_onload");
	script.onreadystatechange = function() {
	if (this.readyState == "complete") {
		init(); // call the onload handler
	}
	};
/*@end @*/

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
//ONLY FOR OLD SAFARI
	if (navigator.userAgent.match(/AppleWebKit\/(\d+)/)[1] < 525) {
		var _timer = setInterval(function() {
			if (/loaded|complete/.test(document.readyState)) {
				init(); // call the onload handler
			}
		}, 10);
	}
}
/* for other browsers */
window.onload = init; 

