//addEvent(window,"load",run);

function magicClientInfo()
{
	var clientList = $("client_folder");
	if(!clientList) return;
	
	var clients = clientList.getElementsByTagName("li");
	for(var i = 0; i < clients.length; i++)
	{
		clients[i].onclick = showInfo;
		//clients[i].onmouseout = function(e) { hideBorder(this); }
		clients[i].onmouseover = function(e)
		{
			e = e||event;
			var original = e.srcElement || e.originalTarget;
			if(original.nodeName == "LI" || 
				(original.nodeName == "A" && containsClass(original,"img")))
			{
				clearAll();
				addClass(this,"visible");
			}
		}
	}
	
	function hideBorder(el)
	{
		removeClass(el,"last_expanded");
		removeClass(el,"expanded");
		removeClass(el,"visible");
	}
	
	function showInfo(e)
	{
		this.blur();
		
		// if is case study don't show anything and go to case study
		var firstLink = this.getElementsByTagName("a")[0];
		if(location.search.indexOf("mode=interviews") == -1 &&
			!containsClass(firstLink,"img_disabled")) return true;
		
		if(containsClass(this,"expanded")) return;
		
		e = e || event;
		e.cancelBubble = true;
		
		addClass(this.parentNode,"visible");
		addClass(this,"visible");
		addClass(this,"expanded");
		if(containsClass(this,"last"))
			addClass(this,"last_expanded");
		return false;
	}
	
	function clearAll()
	{
		for(var i = 0; i < clients.length; i++)
			hideBorder(clients[i]);
	}
}

function playInterview()
{
	var interviewSwf = $('interview_swf');
	removeClass($("interview_movie"),"hidden");
	if($("interview_bg")) removeClass($("interview_bg"),"hidden");
	interviewSwf.Play();
	
	var topFlash = $("flash_swf");
	if(topFlash)
	{
		topFlash.SetVariable("_root.mod", "1");
		topFlash.Play();
	}
	
	return false;
}

function closeInterview()
{
	if($("interview_movie")) addClass($("interview_movie"),"hidden");
	if($("interview_bg")) addClass($("interview_bg"),"hidden");
	
	if(window.interviewPage)
	{
		$("interview_movie").parentNode.removeChild($("interview_movie"));
		$("interview_bg").parentNode.removeChild($("interview_bg"));
	}
	
	var interviewMovieFull = $("interview_full_movie");
	if(interviewMovieFull)
	{
		interviewMovieFull.parentNode.removeChild(interviewMovieFull);
		setOpacity($("client").getElementsByTagName("div")[0],100);
	}
	
	var topFlash = $("flash_swf");
	if(topFlash)
	{
		topFlash.SetVariable("_root.mod", "0");
		topFlash.Play();
	}
}

// TODO: cache
function magicInterviewPlay()
{
	var interviews = $("client_folder").getElementsByTagName("a");
	for(var i = 0; i < interviews.length; i++)
	{
		if(containsClass(interviews[i].parentNode,"interview"))
			interviews[i].onclick = getInterviewData;
	}
		
	function getInterviewData()
	{
		this.blur();
		// get xml data
		var url = this.href;
		var linkTop = this.parentNode.parentNode.parentNode.offsetTop;
		if(containsClass(this.parentNode.parentNode,"last_row"))
			linkTop -= 100;
		
		
		url += (url.indexOf("?") != -1 ? "&" : "?") + "media=xml_data";
		return !ajaxRequest(url, "GET", null, showInterviewLayer)
	
	
		function showInterviewLayer(req)
		{
			var root = req.responseXML;
			var swf = root.getElementsByTagName("swf")[0].firstChild.nodeValue;
			var title = root.getElementsByTagName("title")[0].firstChild.nodeValue;
			var subtitle = root.getElementsByTagName("sub_title")[0].firstChild.nodeValue;
	
			var content = $("clients");
			var swfHeight = 277;
			
			var interviewBg = $c("div");
			interviewBg.id = "interview_bg";
			interviewBg.style.height = content.offsetHeight + "px";
			interviewBg.style.top = 0;//((innerHeight / 2) - (swfHeight / 2)) + "px";
			setOpacity(interviewBg,90);
			content.appendChild(interviewBg);
					
			var interview = $c("div");
			interview.id = "interview_movie";
			interviewBg.appendChild(interview);
			
			var swfObj = new SWFObject("/swf/media/mediaplayer.swf", "interview_swf", "318", swfHeight, "8");
			swfObj.addParam("wmode", "transparent");
			swfObj.addParam("menu", "true");
			swfObj.addParam("flashVars", "nme="+title+"&func="+subtitle+"&path="+swf);
			swfObj.write("interview_movie");
			
			var movie = $("interview_movie");
			movie.style.top = linkTop + "px";
			
			var moviePos = getAbsolutePosition(movie);
			document.body.appendChild(movie);
			movie.style.left = moviePos[0]+"px";
			movie.style.top = moviePos[1]+"px";
			
			setTimeout(playInterview,1000);
			
			//alert(swf + "\n" + title  + "\n" + subtitle)
		}
	}
}

/* left menu banners */
function createBanner(swfFile,containerId,height)
{
	var container = $(containerId);
	var so = new SWFObject(swfFile, containerId + "_swf", "184", height, "8");
	so.addParam("quality", "best");
	so.addParam("bgcolor", "#ffffff");
	so.addParam("flashVars", "path=" + container.getElementsByTagName("a")[0].href);
	so.write(containerId);
}

/* contact map switcher */
function mapSwitcher()
{
	// preload
	var img1 = new Image(); img1.src = "/images/contact/pl.gif";
	var img2 = new Image(); img2.src = "/images/contact/us.gif";
	var img3 = new Image(); img3.src = "/images/contact/frame_top_pl.gif";
	var img4 = new Image(); img4.src = "/images/contact/frame_top_us.gif";

	var usInfo = $("contact_en");
	var plInfo = $("contact_pl");
	
	$("jump_en").onclick = function() { return switchInfo(this,usInfo,plInfo,$("jump_pl")); }
	$("jump_pl").onclick = function() { return switchInfo(this,plInfo,usInfo,$("jump_en")); }
	
	function switchInfo(elem,i1,i2,jump)
	{
		var step = 10;
		var speed = 5;
		elem.blur();
		if(containsClass(elem,"active")) return false;
		var opacity = 100;
		// hide
		var interval = setInterval(function()
		{
			opacity -= step;
			setOpacity(i2,opacity)
			if(opacity == 0)
			{
				// show
				clearInterval(interval);
				setOpacity(i1,opacity);
				addClass(i1,"active"); addClass(elem,"active");
				removeClass(i2,"active"); removeClass(jump,"active");
				setOpacity(i2,100);
				interval = setInterval(function()
				{
					opacity += step;
					setOpacity(i1,opacity)
					if(opacity == 100)
					{
						clearInterval(interval);
					}
				},speed);
			}
		},speed);
		
		return false;
	}
}

var bufferedInterviews = new Array();
var preloader = new Image();
preloader.src = "/images/loader.gif";
function replaceMPInterview(link)
{
	var container = $("other_says");
	
	if(bufferedInterviews[link.href])
	{
		container.innerHTML = bufferedInterviews[link.href];
		updateMPInterviewData();
		return false;
	}
	
	setOpacity(container,30);
	var loader = setTimeout(function() {addClass(container,"loading");},200);
	
	return !ajaxRequest(link.href+"&media=interview","GET",container,function(req)
	{
		clearTimeout(loader);
		updateMPInterviewData();
		removeClass(container,"loading");
		setOpacity(container,100);
		bufferedInterviews[link.href] = req.responseText;
	});
}

function updateMPInterviewData()
{
	var container = $("other_says");
	container.style.backgroundImage = "url('"+$("temp_hidden").innerHTML+"')";
	createMPInterviewPlayer($("temp_hidden2").innerHTML);
}

function createMPInterviewPlayer(file)
{
	var interviewHeight = $("other_says").offsetHeight - 10;
	var mpSwfObj = new SWFObject("/swf/media/mediaplayer.swf", "interview_swf", "318", interviewHeight, "8");
	mpSwfObj.addParam("bgcolor", "#ffffff");
	mpSwfObj.addParam("flashVars", "nme="+$('interview_name').innerHTML+"&amp;func="+$('interview_person_info').innerHTML+"&amp;path="+file);
	mpSwfObj.addParam("menu", "true");
	mpSwfObj.write("interview_movie");
}


function createInterview(name,func,file)
{
	var interviewMovie = $("interview_full_movie");
	if(interviewMovie)
	{
		removeClass(interviewMovie,"hidden");
		return false;
	}

	interviewMovie = $c('div');
	interviewMovie.id = 'interview_full_movie';
	
	$("client").appendChild(interviewMovie);

	var mpSwfObj = new SWFObject("/swf/media/mediaplayer.swf", "interview_swf", "318", "277", "8");
	mpSwfObj.addParam("flashVars", "nme="+name+"&func="+func+"&path="+file);
	mpSwfObj.addParam("menu", "true");
	mpSwfObj.write("interview_full_movie");
	
	var interviewSwfFull = $('interview_swf');
	
	//setOpacity($("client").getElementsByTagName("div")[0],30);
	setTimeout(function(){interviewSwfFull.Play();},1000);
	
	var topFlash = $("flash_swf");
	if(topFlash)
	{
		topFlash.SetVariable("_root.mod", "1");
		topFlash.Play();
	}
	
	return false;
}

function searchHelp()
{
	var helpButtonId = "search_help_button";
	var input = $("form_search_clause");
	var hint = input.parentNode.getElementsByTagName("p")[0];
	var helpButton;
	var defaultTitle = "Show Hint";
	
	input.onfocus = showHelp; 
	input.onblur = hideHelp;
	
	function showHelp()
	{
		addClass(this,"focus");
		if($("helpButtonId"))
		{
			addClass($("helpButtonId"),"visible");
			return;
		}
	
		helpButton = $c("span");
		helpButton.id = helpButtonId;
		helpButton.className = "visible";
		helpButton.title = defaultTitle;
		helpButton.onclick = function(e)
		{  
			e = e||event;
			e.cancelBubble = true;
			input.onfocus();
			if(containsClass(hint,"visible")) { removeClass(hint,"visible"); helpButton.title = defaultTitle; }
			else { addClass(hint,"visible"); helpButton.title = "Hide Hint"; }
			addEvent(document,"click",hideHelp);
		}
		input.parentNode.appendChild(helpButton);
	}
	
	function hideHelp()
	{
		removeClass(input,"focus");
		removeClass(hint,"visible");
		//removeClass(helpButton,"visible");
	}
}

function adjustDocumentHeight(flash)
{
	var doc = $("document");
	if(!doc) return;
	
	var page = $("page");
	var left = $("left");
	var path = $("path");
	
	var leftHeight = left.offsetHeight;
	var rightHeight = flash + path.offsetHeight + doc.offsetHeight;
	
	if(leftHeight > rightHeight)
		doc.style.height = (leftHeight - (flash + path.offsetHeight) + 20) + "px";
}

function updateFeaturedHeight()
{
	var featured = $('featured');
	var otherSays = $('other_says');
	if(featured.offsetHeight > otherSays.offsetHeight)
		otherSays.style.height = (featured.offsetHeight - 100) + "px";
}

function newsArchiveSwitcher()
{
	var archiveList = $("archive");
	setOpacity(archiveList,100);
	var pager = archiveList.getElementsByTagName("div")[0];
	if(!pager) return;
	
	var links = pager.getElementsByTagName("a");
	for(var i = 0; i < links.length; i++)
	{
		links[i].clicked = false;
		links[i].onclick = switchPage;
	}

	return false;
		
	function switchPage()
	{
		if(this.clicked) return;
		this.clicked = true;
		setOpacity(archiveList,50);
		var url = this.href.slice(0,-8) + "&media=archive";
		return !ajaxRequest(url, "GET", archiveList, newsArchiveSwitcher)
	}
}