// Javascript file

var xmlDoc;

//change bg_colors of text fields and text areas
Event.observe(window, "load", function() {
	//check to see if hash is set
	setInterval(pollHash, 500);
	
	// load xml for lightbox buttons
	new Ajax.Request('/xml/lightbox.xml', {
		parameters: {},
		method: 'get',
		onSuccess: function(request) {
			try {
				xmlDoc = request.responseXML.documentElement;
			  } catch(e) {
			    alert(e.message);
			  }  
		},
		onFailure: function(request) {
			alert('Could not load XML file');
		}
	});

	if ($('smallTabs')) {
		var links = $('smallTabs').select('li');
		for (var i=0; i<=links.length-1; i++) {
			$(links[i]).observe('click', function(e) {
				e.stop();
				links.each(function(e){ 
					e.removeClassName("active-" + e.down('a').innerHTML.replace(" ",""));
				});
				$('intro').select('div.launch').invoke('remove');
				this.addClassName('active-' + this.down('a').innerHTML.replace(" ",""));
				var currentImage = document.body.style.backgroundImage;
				var newImage = this.className.slice(0,this.className.indexOf(' '));
				// special case for direct mail
				if (newImage == 'directMail') newImage = 'direct-mail';
				var newBackground = currentImage.replace(/[^\/]+\.jpg/, newImage+'.jpg');
				document.body.style.backgroundImage = newBackground;
				addLightboxButtons(newImage);
				setHash(newImage);
			});
		}
		$$('#content a[rel]').each(function(e){
			var activeLink = $$('#smallTabs .' + e.rel);
			if(activeLink){
				e.observe("click",function(f){
					f.stop();
					links.each(function(g){ 
						g.removeClassName("active-" + g.down('a').innerHTML.replace(" ",""));
					});
					activeLink[0].addClassName('active-' + activeLink[0].down('a').innerHTML.replace(" ",""));
					$('intro').select('div.launch').invoke('remove');
					var newImage = this.rel;
					if (newImage == 'directMail') newImage = 'direct-mail';
					var currentImage = document.getElementById("bgImage").style.backgroundImage;
					var newBackground = currentImage.replace(/[^\/]+\.jpg/, newImage+'.jpg');
					document.getElementById("bgImage").style.backgroundImage = newBackground;
					addLightboxButtons(newImage);
					setHash(newImage);
					window.scrollTo(0,0);
				});
			}
		});
	}
});

function intialiseStateFromURL(){
	var idToShow = window.location.hash;
	if(idToShow.length > 1){
		setUpCaseStudy(idToShow.replace("#",""));
	}
}

function setUpCaseStudy(idToShow){
	
	//remove active
	var links = $('smallTabs').select('li');
	for (var i=0; i<=links.length-1; i++) {
		var suffix = "active-"+links[i].down('a').innerHTML.replace(" ","");
		links[i].removeClassName(suffix);
	};
	if(idToShow == "direct-mail"){
		idToShow = "directMail";
	}
	//set up new link
	var activeLink = $$('#smallTabs .' + idToShow);
	activeLink[0].addClassName('active-' + activeLink[0].down('a').innerHTML.replace(" ",""));
	$('intro').select('div.launch').invoke('remove');
	var newImage = idToShow;
	if (newImage == 'directMail') newImage = 'direct-mail';
	var currentImage = document.getElementById("bgImage").style.backgroundImage;
	var newBackground = currentImage.replace(/[^\/]+\.jpg/, newImage+'.jpg');
	document.getElementById("bgImage").style.backgroundImage = newBackground;
	addLightboxButtons(newImage);
}

function ourWorkSlideshow(mediaUid) {
	flash_in_lightbox.embed('/swf/media-player/mediaPlayer.swf', { uid: mediaUid }, { wmode: "transparent", allowscriptaccess: "always" }, false);
	return false;
}

function closeLightbox() {
	//alert('close lightbox');
	flash_in_lightbox.close();
	lpb_lightbox.end();
}

function addLightboxButtons(className) {
	
	var hasLink = false;
	var prevclient = "";
	var prevtype = "";
	if (xmlDoc) {
		var mediaNodes = xmlDoc.getElementsByTagName("media");
		// alert(mediaNodes.length-1+' nodes');
		for (var i=0; i<=mediaNodes.length-1; i++) {
			var media = mediaNodes[i];
			if (document.body.hasClassName(media.getAttribute("client")) && media.getAttribute("type") == className) {
				//alert('match');
				var uid = media.getAttribute("uid");
				var client = media.getAttribute("client");
				var type = media.getAttribute("type");
				var button = media.getAttribute("button");
				var buttonX = media.getAttribute("buttonX");
				var buttonY = media.getAttribute("buttonY");
				var noflash = media.getAttribute("noflash");
				var buttonHTML = new Element('div');
				buttonHTML.addClassName('launch '+type+' '+button);
				if (type == 'online') {
					var href = media.getAttribute("href");
					buttonHTML.innerHTML = '<a href="'+href+'" rel="external">Launch Website</a>';	
//				} else if (type == 'onlineandTV') {
//					var href = media.getAttribute("href");
//					buttonHTML.innerHTML = '<a href="'+href+'" rel="external">Play</a>';	
				} else {
					buttonHTML.innerHTML = '<a onclick="ourWorkSlideshow(\''+uid+'\'); return false;" href="'+noflash+'" rel="lightbox">Play</a>';
				}
				if(client == 'dcsf' && type == 'film'){
					// hack ie7 and shift buttons a further 320px to the left
					if (Prototype.Browser.IE7) {
						buttonX -= 325;
					}
					buttonHTML.setStyle({ marginLeft: buttonX+"px", top: buttonY+"px" });
				}
				//if($('intro').down('div') && (client!=prevclient) && (type!=prevtype)){
				//	$('intro').down('div').replace(buttonHTML);
				//} else {
					$('intro').insert({'top': buttonHTML});
				//}
				externalLinks();
				hasLink = true;	
				//prevclient = client;
				//prevtype = type;
			} else {
				//alert('not found');
			}
		}
	} else {
		alert('xmlDoc is empty');
	}
	if(!hasLink){
		alert('no link');
		if($('intro').down('div')){
			// alert('div exists');
			$('intro').down('div').remove();
		}
	}
}