function setup(){
	var lightArea = document.getElementById("lightbox-items");
	var links = lightArea.getElementsByTagName("a");
	var pics = lightArea.getElementsByTagName("img");
	
	// open it onclick
	for (var i=0; i<links.length; i++ ) {
		var sectionId = links[i].getAttribute("href");
		links[i].destination = sectionId;
		links[i].onclick = function() {			
			getContent(this.destination);
			return false;
		}
	}
}
function handleLoad(request){
	var responseData = request.text()
	var trimmedData = /<body>([\s\S]*)<\/body>/.exec(responseData)[1];
   	lightbox(trimmedData);
	return false;
}
function getContent(url){	
	 var second = url.split("/christmas/")[1];
	 if (second != null){
	 var finalurl = "lb"+second;
	 }
	 else {
	 	finalurl = "lb"+url;
		}	
	bbcjs.http.get(finalurl, {onLoad:handleLoad} );
}
// create lightbox
function lightbox(contents){
	var recipeContent = contents;
		//'
	var myTemplate = '<div class="bbcjsUiLightBoxDefault" id="section1">' +
	'<a onclick="window.print()" href="#" class="recprint" tabindex="11">Print</a>' +
	'<p><span id="bbcjsUiLightBoxClose" title="Return to main window"><a href="#" id="focushere">Close window</span></a></p>' + 
	'<img src="tiny.gif" width="{width}" height="1" alt="{description}" />'+
	'<div class="recipeprint">{recipe}</div>' +
	'<div id="bbcjsUiLightBoxNext" title="Next">Forward &amp;gt;&amp;gt;</div>' +
	'<div id="bbcjsUiLightBoxPrevious" title="Previous">&amp;lt;&amp;lt; Back</div>' + 
	'</div>';		
	
	var myLightBox = new bbcjs.ui.LightBox([{
    width: '524', 
	height:'476',  
	recipe:recipeContent
	}], {
    maskColor: '#000000',
    maskOpacity: '25',
    borderWidth: 1,
    borderColor: '#45899b',
    closeBackground: '#ffffff',
	closeColor: '#414b51',
	template:myTemplate
	});
		
	myLightBox.open();
	document.getElementById("focushere").focus();
}
	
function toolTips(){
var Tooltip = function(oContent, oOpts) {
	this.element;
	this.opts = {
		offsetX: 5,
		offsetY: 20,
		followMouse: true,
		delay: 300,
		delayWhileStatic: false,
		className: ""
	}
	this.showInterval; //holds delay interval
	this.moveEventId = null;
	this.overEventId = null;
	this.isShown = false;
	this.isActive = false;
	
	//set options
	if (oOpts) {
		this.opts = Object.extend(this.opts, oOpts);
	}
	//create element
	var tmpElement = document.createElement("div");
	tmpElement.innerHTML = '<div class="uiTooltip ' + this.opts.className + '"></div>';
	this.element = tmpElement.childNodes[0];
	document.body.appendChild(this.element);
	
	//add content
	if (oContent) {
		this.setContent(oContent);
	}
	
	//add to array
	Tooltip.tooltips[Tooltip.tooltips.length] = this;
}
Tooltip.tooltips = []; //stores all tooltips
Tooltip.hideAll = function() {
	for (var n = 0; n < Tooltip.tooltips.length; n++) {
		Tooltip.tooltips[n].hide();
	}
}
Tooltip.prototype = {
	setContent: function(newContent) {
		this.element.innerHTML = newContent;
	},
	
	activate: function() {
		if (this.isActive) {
			return;
		}
		this.isActive = true;
		this.addMoveEvent();
		var currentInstance = this;
		window.clearInterval(this.showInterval);
		this.showInterval = window.setInterval(function() {
			currentInstance.show();
		}, this.opts.delay);
	},
	
	show: function() {
		this.element.style.display = "block";
		window.clearInterval(this.showInterval);
		this.isShown = true;
		if (!this.opts.followMouse) {
			this.addOverEvent();
		}
	},
	
	hide: function() {
		window.clearInterval(this.showInterval);
		this.element.style.display = "";
		this.isShown = false;
		this.isActive = false;
		this.removeMoveEvent();
		this.removeOverEvent();
	},
	
	addMoveEvent: function() {
		this.moveEventId = bbcjs.dom.addEventListener(document, 'mousemove', this.moveEvent, this);
	},
	
	removeMoveEvent: function() {
		if (this.moveEventId !== null) {
			bbcjs.dom.removeEventListener(this.moveEventId);
			this.moveEventId = null;
		}
	},
	
	addOverEvent: function() {
		this.overEventId = bbcjs.dom.addEventListener(this.element, 'mouseover', this.hide, this);
	},
	
	removeOverEvent: function() {
		if (this.overEventId !== null) {
			bbcjs.dom.removeEventListener(this.overEventId);
			this.overEventId = null;
		}
	},
	
	moveEvent: function(e) {
		if (!this.opts.followMouse && this.isShown) {
			this.removeMoveEvent();
			if (this.opts.delay > 0) return;
		}
		
		this.element.style.left = (e.pageX || (e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft))) + this.opts.offsetX + "px";
		this.element.style.top = (e.pageY || (e.clientY + (document.documentElement.scrollTop || document.body.scrollTop))) + this.opts.offsetY + "px";
		
		//move off the right hand side
		var difference;
		if ((difference = (e.clientX + this.element.offsetWidth + this.opts.offsetX) - document.body.clientWidth) > 0) {
			this.element.style.left = (this.element.style.left.substr(0, this.element.style.left.length - 2) - difference) + "px";
		}
		
		if (!this.isShown && this.opts.delayWhileStatic) {
			window.clearInterval(this.showInterval);
			var currentInstance = this;
			this.showInterval = window.setInterval(function() {
				currentInstance.show();
			}, this.opts.delay);
		}
	}
};

//PAGE SPECIFIC
function contains(oOuter, oInner) {
	if (!oInner || !oOuter) return false;
	while ((oInner = oInner.parentNode) && oInner != oOuter);
	return oInner == oOuter;
}

bbcjs.addOnLoadItem(function() {
	
	var toolArea = document.getElementById("lightbox-items");
	var toollinks = toolArea.getElementsByTagName("a");
	var toolpics = toolArea.getElementsByTagName("img");
	
	// open it onclick
	for (var i=0; i<toollinks.length; i++ ) {		
		var linkitem = toollinks[i].id;
		
		var imageitem = toolpics[i].getAttribute("alt");
		
		var tooltipcontent = "<div class='shadow'></div><div class='inner'>"+imageitem+"</div>";
		
		var hoveredOn = document.getElementById(linkitem);
		
		toollinks[i].oTooltip = new Tooltip(tooltipcontent, {
				offsetX: 30,
				offsetY: -10,
				className: "fancyTooltip"
		});					
									
			bbcjs.dom.addEventListener(hoveredOn, 'mouseover', function(e) {
				var relatedTarget = e.relatedTarget || e.fromElement;
					if (this != relatedTarget && !contains(this, relatedTarget)) {
						this.oTooltip.activate();
					}
			}, toollinks[i]);
			
			bbcjs.dom.addEventListener(hoveredOn, 'mouseout', function(e) {
					e = e || window.event;
					var relatedTarget = e.relatedTarget || e.toElement;
					if (this != relatedTarget && !contains(this, relatedTarget)) {
						this.oTooltip.hide();
					}
			}, toollinks[i]);
	}
});
}
// popup cook's calculator for link with id popupLink
function showPopup() {
		var myPopup = new bbcjs.win.Window("/food/christmas/calcs.shtml", 520, 340);
		myPopup.features.status = 'yes';
		myPopup.open();
		return false;
}

function popUp(){
   document.getElementById('popupLink').onclick = showPopup;
}

// Simon Willison's add multiple function on page loads script
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

addLoadEvent(setup);	
addLoadEvent(toolTips);
addLoadEvent(popUp);