var opus = { src: '/opus.swf' };
var lavaHover=false;
var curLava;
var clickLava = "who";
var rayframe=0;
var hints=new Array();
var $rays = $("#rays");
var portDone = false;
var workTip = "";
var tipTimeout;
var $desc;
hints['who'] = {txt:"About us",w:100,x:300,y:300};
hints['what'] = {txt:"Our Portfolio",w:130,x:310,y:2000};
hints['where'] = {txt:"Us and Sheffield",w:150,x:850,y:3200};
hints['how'] = {txt:"How we work",w:130,x:2800,y:3300};
hints['why'] = {txt:"Our approach",w:130,x:3400,y:2000};
hints['blog'] = {txt:"What we're up to",w:150,x:0,y:0};
hints['contact'] = {txt:"Get in touch",w:120,x:2660,y:500};

sIFR.activate(opus);

sIFR.replace(opus, {
  selector: 'h2.underNav',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000;text-align:right; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#000000;}']
});
sIFR.replace(opus, {
  selector: '#portfolio_page h3, #s_h h3',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#000000;}']
});
sIFR.replace(opus, {
  selector: '.work_results h2, .postfolio_title, #export h3, #export li',
  filters: {
        Glow: {
           distance: 0.1
		  ,quality: 1
          ,color: '#ffffff'
          ,strength: 4
          ,alpha: 1
		  ,blurX:3
		  ,blurY:3
        }
      },
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#91E53D;}']
});
sIFR.replace(opus, {
  selector: '.meta h5',
  wmode : 'transparent',
  css: '.sIFR-root { background-color: #FFFFFF; color: #808080; text-align:right; }'
});

sIFR.replace(opus, {
  selector: 'h1#hometitle',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#000000;}']
});


sIFR.replace(opus, {
  selector: '.meta #top',
  wmode : 'transparent',
  css: '.sIFR-root { background-color: #FFFFFF; color: #000000; text-align:right; }'
});

sIFR.replace(opus, {
  selector: 'h2.storytitle',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#E53E3E;}']
});
sIFR.replace(opus, {
  selector: 'h1.bigHead',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#E53E3E;}']
});
sIFR.replace(opus, {
  selector: '.up3_content h3',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#E53E3E;}']
});
sIFR.replace(opus, {
  selector: 'h2#workCats',
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#E53E3E;}']
});

sIFR.replace(opus, {
  selector: 'h2.port_title',
  filters: {
        Glow: {
           distance: 0.1
		  ,quality: 1
          ,color: '#ffffff'
          ,strength: 4
          ,alpha: 1
		  ,blurX:3
		  ,blurY:3
        }
      },
  wmode : 'transparent',
  css: ['.sIFR-root { background-color: #FFFFFF; color: #000000; }',
		'a{text-decoration:none; color:#000000;}',
		'a:hover{color:#91E53D;}']
});

$(document).ready(function(){
$desc = $("#desc");
$s = $("#s");
$s.val("Search");
$(".port_big").css("margin-top","-125px");
$("#workInfo").css("display","none");
$("a[target='_blank']").addClass("outbound");
									
$("#home_banner").cycle({speed:5000,timeout:5000});
$s.click(function(){
				  if($s.val()=="Search") $s.val("");
				  });
$s.blur(function(){
				 if($s.val()=="") $s.val("Search");
				 });

	$(function() { $("#nav").lavaLamp({ 
			fx: "backout", 
			speed: 700, 
			click: function(event, menuItem) { 
				clickLava = menuItem.id;
				var pos = $("#uber").offset();
				
			}, 
			landing: function(menuItem) {
				 //need to display the description box now
				 if(curLava == menuItem.id && lavaHover){
					 //ok its arrived at the place, and its the one the user is still hovering on.
					 
					 $desc.css("width",hints[menuItem.id].w);
					 $("#descTxt").text(hints[menuItem.id].txt);
					 $("#navarrow").fadeIn(100,function(){
														   var pos = $("#navarrow").offset();
														   var rap = $("#rap").offset();
														   if(BrowserDetect.browser=="Safari" && BrowserDetect.version<4){
															   $desc.css("left",pos.left  - rap.left - ($desc.width()*0.5)+8);
														   } else {
														   		$desc.css("left",pos.left  - ($desc.width()*0.5)+8);
														   }
														   $desc.fadeIn("slow");
														   });
					 
				 }
			}
	})});
$("#nav li a").hover(function(){
								  lavaHover=true;
								  curLava = this.parentNode.id;
								  },
						  function(){
							  	  lavaHover=false;
								  curLava = this.parentNode.id;
								  $desc.fadeOut("slow");
								  $("#navarrow").fadeOut(100);						  
	});

$(".postfolio").each(function(){
							  $(this).html($(this).html() + '<div class="overlay"></div>');
							  $(this).css("cursor","pointer");
							  });

$(".postfolio").click(function(){
							   var $t=this.id;
							   $(".postfolio").each(function(){
															 if(this.id!=$t){
																 if($(this).height()>55){
																	 $(this).animate({height:"55px"});
																 }
															 }
															 });
							   var w=$(this).height();
							   if($(this).height()<300){
							   	$(this).animate({height:"300px"});
							   }
							   if($(this).height()>200){
								   //go to the page if the div is over a certain size
								   var $a = $(this).children(".theLink");
								   location.href = $a.eq(0).attr("href");
							   }
							   
							   });
$(".gallery a").click(function(){
							   clearTimeout(tipTimeout);
							   $("#workInfo").fadeOut("normal",function(){$(this).text("")});
							   //$("#workInfo").text("");
							  //load the img
							  if(portDone){
								$("#bigImg").css("background",$("#newBigImg").css("background"));
								$("#newBigImg").css("left","960px");
							  }
							  $("#loader").css("display","block");
							  $(".gallery a img").removeAttr("id");
							  $(this).children("img").attr("id","sel");
							  workTip = trim($(this).parent("dt").siblings("dd").text()," ");
							  getImgSize(this.href);
							  return false;
							  });
$(".gallery a").eq(0).click();

$("#bigImg").hover(function(){
							if(workTip!=""){
								$("#workInfo").fadeIn("normal");
							}
							},
							function(){
								tipTimeout = setTimeout(hideTip,5000);
							});

setInterval(animRays,42);

});
function animRays(){
	
	$rays.css("left",250 + (Math.sin(rayframe)*20));
	$rays.css("top",50 + (Math.cos(rayframe)*20));
	rayframe+=0.05;
	if(rayframe>360) rayframe=0;
}
function getImgSize(imgSrc)
{
var newImg = new Image();
newImg.onload = newBigImg;
newImg.onerror = loadFailure;
newImg.src = imgSrc;

}

function newBigImg(){
	if(!portDone){
		$("#newBigImg").css("background","url(" + this.src + ") no-repeat left top");
		$("#bigImg").animate({height:this.height + "px"});
		portDone=true;
	} else {
		
		$("#bigImg").animate({height:this.height + "px"});
		$("#newBigImg").css("background","url(" + this.src + ") no-repeat left top");
		$("#newBigImg").animate({left: "0px"});
	}
	if(workTip!=""){
		clearTimeout(tipTimeout);
		workTip=prepTip(workTip);
		var $w = $("#workInfo");
		$w.html(workTip);
		if($w.css("display")=="none"){
			$w.fadeIn("normal");
		}
		tipTimeout = setTimeout(hideTip,10000);
	}
	
}
function prepTip(tip){
	tip = "<p>" + tip + "</p>";
	tip = tip.replace("||","</p><p>");
	return tip;
}
function hideTip(){
	$("#workInfo").fadeOut("normal");
}
function loadFailure(){
	alert("loading failed :(");
}
function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

(function(D){var A="Lite-1.0";D.fn.cycle=function(E){return this.each(function(){E=E||{};if(this.cycleTimeout){clearTimeout(this.cycleTimeout)}this.cycleTimeout=0;this.cyclePause=0;var I=D(this);var J=E.slideExpr?D(E.slideExpr,this):I.children();var G=J.get();if(G.length<2){if(window.console&&window.console.log){window.console.log("terminating; too few slides: "+G.length)}return }var H=D.extend({},D.fn.cycle.defaults,E||{},D.metadata?I.metadata():D.meta?I.data():{});H.before=H.before?[H.before]:[];H.after=H.after?[H.after]:[];H.after.unshift(function(){H.busy=0});var F=this.className;H.width=parseInt((F.match(/w:(\d+)/)||[])[1])||H.width;H.height=parseInt((F.match(/h:(\d+)/)||[])[1])||H.height;H.timeout=parseInt((F.match(/t:(\d+)/)||[])[1])||H.timeout;if(I.css("position")=="static"){I.css("position","relative")}if(H.width){I.width(H.width)}if(H.height&&H.height!="auto"){I.height(H.height)}var K=0;J.css({position:"absolute",top:0,left:0}).hide().each(function(M){D(this).css("z-index",G.length-M)});D(G[K]).css("opacity",1).show();if(D.browser.msie){G[K].style.removeAttribute("filter")}if(H.fit&&H.width){J.width(H.width)}if(H.fit&&H.height&&H.height!="auto"){J.height(H.height)}if(H.pause){I.hover(function(){this.cyclePause=1},function(){this.cyclePause=0})}D.fn.cycle.transitions.fade(I,J,H);J.each(function(){var M=D(this);this.cycleH=(H.fit&&H.height)?H.height:M.height();this.cycleW=(H.fit&&H.width)?H.width:M.width()});J.not(":eq("+K+")").css({opacity:0});if(H.cssFirst){D(J[K]).css(H.cssFirst)}if(H.timeout){if(H.speed.constructor==String){H.speed={slow:600,fast:200}[H.speed]||400}if(!H.sync){H.speed=H.speed/2}while((H.timeout-H.speed)<250){H.timeout+=H.speed}}H.speedIn=H.speed;H.speedOut=H.speed;H.slideCount=G.length;H.currSlide=K;H.nextSlide=1;var L=J[K];if(H.before.length){H.before[0].apply(L,[L,L,H,true])}if(H.after.length>1){H.after[1].apply(L,[L,L,H,true])}if(H.click&&!H.next){H.next=H.click}if(H.next){D(H.next).bind("click",function(){return C(G,H,H.rev?-1:1)})}if(H.prev){D(H.prev).bind("click",function(){return C(G,H,H.rev?1:-1)})}if(H.timeout){this.cycleTimeout=setTimeout(function(){B(G,H,0,!H.rev)},H.timeout+(H.delay||0))}})};function B(J,E,I,K){if(E.busy){return }var H=J[0].parentNode,M=J[E.currSlide],L=J[E.nextSlide];if(H.cycleTimeout===0&&!I){return }if(I||!H.cyclePause){if(E.before.length){D.each(E.before,function(N,O){O.apply(L,[M,L,E,K])})}var F=function(){if(D.browser.msie){this.style.removeAttribute("filter")}D.each(E.after,function(N,O){O.apply(L,[M,L,E,K])})};if(E.nextSlide!=E.currSlide){E.busy=1;D.fn.cycle.custom(M,L,E,F)}var G=(E.nextSlide+1)==J.length;E.nextSlide=G?0:E.nextSlide+1;E.currSlide=G?J.length-1:E.nextSlide-1}if(E.timeout){H.cycleTimeout=setTimeout(function(){B(J,E,0,!E.rev)},E.timeout)}}function C(E,F,I){var H=E[0].parentNode,G=H.cycleTimeout;if(G){clearTimeout(G);H.cycleTimeout=0}F.nextSlide=F.currSlide+I;if(F.nextSlide<0){F.nextSlide=E.length-1}else{if(F.nextSlide>=E.length){F.nextSlide=0}}B(E,F,1,I>=0);return false}D.fn.cycle.custom=function(K,H,I,E){var J=D(K),G=D(H);G.css({opacity:0});var F=function(){G.animate({opacity:1},I.speedIn,I.easeIn,E)};J.animate({opacity:0},I.speedOut,I.easeOut,function(){J.css({display:"none"});if(!I.sync){F()}});if(I.sync){F()}};D.fn.cycle.transitions={fade:function(F,G,E){G.not(":eq(0)").css("opacity",0);E.before.push(function(){D(this).show()})}};D.fn.cycle.ver=function(){return A};D.fn.cycle.defaults={timeout:4000,speed:1000,next:null,prev:null,before:null,after:null,height:"auto",sync:1,fit:0,pause:0,delay:0,slideExpr:null}})(jQuery)

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
