/* ------------------------------------------
READING ROOM
JQuery Functions : development version
Author: Reading Room (Nicolas Gallagher)
Updated: 9 October 2009
------------------------------------------ */


// open external links in a new window
var extLinks = function() {
	$('a[rel="external"]').each(function() {
		$(this).attr("title", "External link to " + $(this).attr("title") + " - opens in a new window");
		$(this).click(function() {
			window.open($(this).attr('href'));
			return false;
		});
	});
};

// print page icons
var pntPage = function() {
	$("#articleTools").prepend('<li class="printPage"><a href="javascript:window.print()" title="Print page">Print page</a></li>');
	$(".caseStudy .tools ul").prepend('<li class="print"><a href="javascript:window.print()"><img src="/images/case-studies/print.png" alt="Print this page" /></a></li>');
};



/* ------------------------------------------------------------------------------------
--  ACCORDION
------------------------------------------------------------------------------------ */

var initAcc = function() {
	$(".accordionInner h2").addClass("toggle");
	$(".accordionInner h2").wrapInner('<a href="#non"></a>');
	$(".accordionItem").hide();
	$(".accordionItem:first").show();

	$(".accordionInner:first").children("h2").children().addClass("on");
	$(".accordionInner h2 a").click(function() {
		$(".accordionInner h2 a").removeClass("on");
		$(this).addClass("on");
		var u = $(this).parent().next();
		if((u.is(".accordionItem")) && (u.is(":visible"))) {
			return false;
		}
		if((u.is(".accordionItem")) && (!u.is(":visible"))) {
			$(".accordionItem:visible").slideUp("normal");
			u.slideDown("normal");
			return false;
		}
	});
};



/* ------------------------------------------------------------------------------------
--  FILTER CONTROLS
------------------------------------------------------------------------------------ */

var fltr = function() {

// if the width is below the min-width (esp for mobiles) just display the filters...
	if($("body").width() < 740) {
		$("#filterLinksContainer").show();
	}

// if the width is wide enough to display the filter options on the js case study module without slipping onto a new line...
	if($("body").width() >= 740) {
		$("#filterLinksContainer, .filterLinks").hide();
		// write revealing link into main pages for News and WorkForUs
		$("body.news #filterResults, body.workForUs #filterResults").append('<div id="filterOptions"><h3><a class="toggleLocation" href="#non"><span>filter options</span></a></h3></div>');
		$("body.portfolio #filterResults").append('<div id="filterOptions"><h3><a href="#non" class="toggleSector"><span>Filter by sector</span></a></h3><h3><a href="#non" class="toggleLocation"><span>Filter by location</span></a></h3><h3><a href="#non" class="toggleOrg"><span>Filter by size of project</span></a></h3></div>');

		// toggling location filters
		$("a.toggleLocation").click(function() {
			if($("#locationLinks").css("display") == "block") {
				$("#locationLinks").show();
				$("#filterLinksContainer").slideToggle();
			}
			$("#sectorLinks, #orgLinks").hide();
			$("#locationLinks").show();
			if($("#filterLinksContainer").css("display") == "none") {
				$("#filterLinksContainer").slideToggle();
			}
		});
		
		// toggling sector filters
		$("a.toggleSector").click(function() {
			if($("#sectorLinks").css("display") == "block") {
				$("#filterLinksContainer").slideToggle();
			}
			$("#locationLinks, #orgLinks").hide();
			$("#sectorLinks").show();
			if($("#filterLinksContainer").css("display") == "none") {
				$("#filterLinksContainer").slideToggle();
			}
		});
		
		// toggling org filters
		$("a.toggleOrg").click(function() {
			if($("#orgLinks").css("display") == "block") {
				$("#filterLinksContainer").slideToggle();
			}		$("#sectorLinks, #locationLinks").hide();
			$("#orgLinks").show();
			if($("#filterLinksContainer").css("display") == "none") {
				$("#filterLinksContainer").slideToggle();
			}
		});

	}
};



/* ------------------------------------------------------------------------------------
--  jQuery SWFObject Plugin v1.0.7
------------------------------------------------------------------------------------ */

(function(F,B,A){var C=function(H){var G,I=[];for(G in H){I.push(G+'="'+H[G]+'"')}return I.join("")},E=function(I){var G,K,J=[],H;for(G in I){if(typeof I[G]=="object"){H=[];for(K in I[G]){H.push([K,"=",encodeURIComponent(I[G][K])].join(""))}I[G]=H.join("&amp;")}J.push(['<param name="',G,'" value="',I[G],'" />'].join(""))}return J.join("")},D=false;F[B]=(function(){var G="0,0,0",H=navigator.plugins["Shockwave Flash"]||window.ActiveXObject;G=H.description||(function(){try{return(new H("ShockwaveFlash.ShockwaveFlash")).GetVariable("$version")}catch(I){}}());G=G.match(/^[A-Za-z\s]*?(\d+)[\.|,](\d+)(?:\s+r|,)(\d+)/);return{available:G[1]>0,activeX:!H.name,version:{major:G[1]*1,minor:G[2]*1,release:G[3]*1},hasVersion:function(J){var M=this.version,K="major",L="minor",I="release";J=(/string|number/.test(typeof J))?J.toString().split("."):J||[0,0,0];J=[J[K]||J[0]||M[K],J[L]||J[1]||M[L],J[I]||J[2]||M[I],];return(J[0]<M[K])||(J[0]==M[K]&&J[1]<M[L])||(J[0]==M[K]&&J[1]==M[L]&&J[2]<=M[I])},expressInstaller:A,create:function(I){if(!F[B].available||D||!typeof I=="object"||!I.swf){return false}I=F.extend(true,{attrs:{height:I.height||180,width:I.width||320},params:{wmode:I.wmode||"opaque",flashvars:I.flashvars}},I);if(I.hasVersion&&!F[B].hasVersion(I.hasVersion)&&F[B].hasVersion("6.0.65")){D=true;I={swf:I.expressInstaller||F[B].expressInstaller,attrs:{id:"SWFObjectExprInst",height:Math.max(I.height||137),width:Math.max(I.width||310)},params:{flashvars:{MMredirectURL:location.href,MMplayerType:(F[B].activeX)?"ActiveX":"PlugIn",MMdoctitle:document.title.slice(0,47)+" - Flash Player Installation"}}}}return"<object "+(C(I.attrs))+(this.activeX?' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="'+I.swf+'" />':' type="application/x-shockwave-flash" data="'+I.swf+'">')+(E(I.params))+"</object>"}}}());F.fn[B]=function(G){if(typeof G=="object"){this.each(function(){var H=document.createElement(B);H.innerHTML=F[B].create(G);if(H.childNodes[0]){this.appendChild(H.childNodes[0])}})}else{if(typeof G=="function"){this.find("object").andSelf().filter("object").each(function(){var J={},I=this,H="jsInteractionTimeoutMs";I[H]=I[H]||0;if(I[H]<660){if(I.clientWidth||I.clientHeight){G.call(this)}else{setTimeout(function(){F(I)[B](G)},I[H]+66)}}})}}return this}}(jQuery,"flash","expressInstaller.swf"));



/* ------------------------------------------------------------------------------------
--  PORTFOLIO SLIDER
------------------------------------------------------------------------------------ */

/*
var slide = function(n) {

	$(".cases #portfolioList").show();
	// checking for handheld-only style information
	if($(".portfolioItem").css("float") == "none") {
		var h = "yes";
	} else {
		var h = "no";
	}

// if the browser width on portfolio page is wide enough to display the js case study module & is not using handheld style info...
	if($("body").width() >= 848 && $("body.portfolio").length > 0) {
		$("body").addClass("wider");
	}
	if($("body").width() >= 848 && (h == "no")) {
		// wrap these divs outside and inside the portfolioList
		$(".cases #portfolioList")
		.wrap('<div id="portfolioSlider"></div>')
		.wrapInner('<div class="portfolioContainer"></div>');
		// insert the prev/next arrows before and after the portfolioList
		$('#portfolioSlider #portfolioList')
		.before('<img class="scroll left off" src="/images/btnPortfolioSlider-off.gif" alt="Previous" />')
		.after('<img class="scroll right" src="/images/btnPortfolioSlider-right.gif" alt="Next" />');
		// create an element after the portfolioList. This is where the case study content is displayed following an ajax call
		$('<div class="caseStudyContainer"></div>').insertAfter("#portfolioSlider #portfolioList");

		var itm_n = $("#portfolioSlider .portfolioItem").size(); // number of items
		var row_n = $("#portfolioSlider .portfolioRow").size(); // number of rows
		var itm_w = $("#portfolioSlider .portfolioItem").outerWidth({ margin: true }); // width of an item
		var row_w = $("#portfolioSlider .portfolioRow").outerWidth({ margin: true }); // width of a row
		$(".portfolioContainer").css("width", row_n*row_w + "px"); // calculate width of container

		var c = 0; // counter

		// movement number options - currently, if greater than 2, set to 2.
		if(n > 2) { n = 2; }
		if(n == 1) { var C = (itm_n/n); } // maximum count
		else if(n == 2) {	var C = (itm_n/n)-2; } // maximum count

		// grey out the left scroll arrow if we're at the start
		var scrOff = function() {
			if(c == 0) {
				$("#portfolioSlider img.scroll.left").attr("src","/images/btnPortfolioSlider-off.gif").addClass("off");
			} else {
				$("#portfolioSlider img.scroll.left").attr("src","/images/btnPortfolioSlider-left.gif").removeClass("off");
			}
		}
		// scroll left
		var scrLt = function() {
			if(c > 0) {
				$("#portfolioList .portfolioContainer").animate({left: "+=" + itm_w*n + "px"}, 500, "swing");
				c--;
			}
			scrOff();
	   };
		// scroll right
		var scrRt = function() {
			if(c < C) {
				$("#portfolioList .portfolioContainer").animate({left: "-=" + itm_w*n + "px"}, 500, "swing");
				c++;
			}
			else if(c == C) { // go back to the start
				$("#portfolioList .portfolioContainer").animate({left: "0px"}, 1000, "swing");
				c = 0;
			}
			scrOff();
		};

		// scroll items when arrows are clicked
	   $("#portfolioSlider img.scroll.left").click(scrLt);
	   $("#portfolioSlider img.scroll.right").click(scrRt);
	}
};
*/

/*
var slide = function() {

	$(".cases #portfolioList").show();
	// checking for handheld-only style information
	if($(".portfolioItem").css("float") == "none") {
		var h = "yes";
	} else {
		var h = "no";
	}

// if the browser width on portfolio page is wide enough to display the js case study module & is not using handheld style info...
	if($("body").width() >= 848 && $("body.cases").length > 0) {
		$("body").addClass("wider");
	}
	if($("body").width() >= 848 && (h == "no")) {
		// wrap these divs outside and inside the portfolioList
		$(".cases #portfolioList")
		.wrap('<div id="portfolioSlider"></div>')
		.wrapInner('<div class="portfolioContainer"></div>');
		// create an element after the portfolioList. This is where the case study content is displayed following an ajax call
		$("#portfolioSlider #portfolioList").after('<div class="caseStudyContainer"></div>');
		// insert the prev/next arrows before and after the portfolioList
		$('#portfolioSlider #portfolioList')
		.before('<a class="scroll left off" href="#non"><img src="http://www.readingroom07.vs003.int.rroom.net/images/btnPortfolioSlider-off.gif" alt="Previous" /></a>')
		.after('<a class="scroll right" href="#non"><img src="http://www.readingroom07.vs003.int.rroom.net/images/btnPortfolioSlider-right.gif" alt="Next" /></a>');

		var itm_n = $("#portfolioSlider .portfolioItem").size(); // number of items
		var row_n = $("#portfolioSlider .portfolioRow").size(); // number of rows
		var itm_w = $("#portfolioSlider .portfolioItem").outerWidth({ margin: true }); // width of an item
		var row_w = $("#portfolioSlider .portfolioRow").outerWidth({ margin: true }); // width of a row
		$(".portfolioContainer").css("width", row_n*row_w + "px"); // calculate width of container

		var c = 0; // counter
		var C = row_n-1; // max count

		$('#portfolioList .portfolioRow:first').addClass("portShow");

		// grey out the left scroll arrow if we're at the start
		var scrOff = function() {
			if(c == 0) {
				$("#portfolioSlider a.scroll.left").children("img").attr("src","http://www.readingroom07.vs003.int.rroom.net/images/btnPortfolioSlider-off.gif").end().addClass("off");
			} else {
				$("#portfolioSlider a.scroll.left").children("img").attr("src","http://www.readingroom07.vs003.int.rroom.net/images/btnPortfolioSlider-left.gif").end().removeClass("off");
			}
		};
		// only have visible the 4 items in the current view (to prevent keyboard-focus problems)
		var showCur = function() {
			$("#portfolioList .portfolioContainer")
			.children(".portfolioRow")
			.removeClass("portShow")
			.eq(c)
			.addClass("portShow");
		};
		
		// scroll left
		var scrLt = function() {
			if(c > 0) {
				$("#portfolioList .portfolioContainer")
					.children(".portfolioRow")
					.addClass("portShow")
					.end()
					.animate({left: "+=" + row_w + "px"}, 800, "swing", showCur);
				c--;
			}
			scrOff();
			return false;
	   };
		// scroll right
		var scrRt = function() {
			if(c < C) {
				$("#portfolioList .portfolioContainer")
					.children(".portfolioRow")
					.addClass("portShow")
					.end()
					.animate({left: -1*row_w*(c+1) + "px"}, 800, "swing", showCur);
				c++;
			}
			else if(c == C) { // go back to the start
				$("#portfolioList .portfolioContainer")
					.children(".portfolioRow")
					.addClass("portShow")
					.end()
					.animate({left: "0px"}, 1200, "swing", showCur);
				c = 0;
			}
			scrOff();
			return false;
		};

		// scroll items when arrows are clicked
	   $("#portfolioSlider a.scroll.left").click(scrLt);
	   $("#portfolioSlider a.scroll.right").click(scrRt);
	}
};
*/

/* ------------------------------------------------------------------------------------
--  AJAX CONTENT CALL
------------------------------------------------------------------------------------ */

/*
var ajCont = function() {
	if(document.getElementById("portfolioSlider")) {
		$("#portfolioSlider").ready(function() {
			$("#portfolioSlider .portfolioItem:first").addClass("selected");
			var url = $(".portfolioRow:first")
				.find("a")
				.attr("href");
			var t = url.split(".")[0] + "-ajax.aspx";
			$(".caseStudyContainer")
				.empty()
				.load(t, null, function() {
					pntPage(), extLinks();
				});
		});

		getStudy = function() {
			var url = $(this).find("a").attr("href");
			
			if ((url != "#non") && ($(this).hasClass("selected") == false)) {
				// this line might have to change for the actual pages, if they are aspx
				var c = url.split(".")[0] + "-ajax.aspx";
				$(".caseStudyContainer")
					.empty()
					.css({opacity:0})
					.load(c, null, function() {
						pntPage(), extLinks();
					})
					.animate({opacity:1}, 'normal');
				
				$(this).find("a"); {return false;}
			}
			else {
				$(this).find("a"); {return false;}
			}
		};

		$("#portfolioSlider .portfolioItem").click(getStudy);
		$("#portfolioSlider .portfolioItem").click(function() {
			$("#portfolioSlider .portfolioItem").removeClass("selected");
			$(this).addClass("selected");
		});
	}
};
*/


/* ------------------------------------------------------------------------------------
--  DOM READY
------------------------------------------------------------------------------------ */

jQuery(document).ready(function() {
	extLinks();
	pntPage();
	fltr();
	initAcc();
	// Homepage flash
	$('#stage > *').remove();
	$('#stage').flash({
		swf: '/flash/fridge.swf',
		params: {
			wmode: 'transparent'
		},
		flashvars: {
			theURL: '/news/take-a-digital-detox-with-reading-room.aspx'
		},
		width: 800,
		height: 370
	});
	//slide();
	//ajCont();
});