/*

** Profile Sub-Page Animations

** Bluewire Media Pty Ltd

** Project Manager: Sarah hyne (sarah.hyne@bluewiremedia.com.au)

** Developer: Jake Pospischil (jake.pospischil@bluewiremedia.com.au)

*/



// page & elements to activate on

var profileMenuActivePage = "Profile";

var profileElements = "#subMenu a";

var profileRel = "profile-link";



// publications page elements

var publicationElements = "#publicationLinks a";

var publicationRel = "publication-link";



// people page elements

var peopleElements = "#peopleLinks a";

var peopleRel = "people-link";

var peopleCatRel = "people-cat-link";



// content pane slide duration

var contentDuration = 1200;



// content pane default height

var pageHeight = 275;



// content pane table cell height offset

var contentOffset = 13;



// run animation & link script on DomReady

window.addEvent("domready", function() {

	

	// check for Profile page

	if (currentPage == profileMenuActivePage) {

		// find and accordionize recognition content
		
		var recogToggles = $$("#leftContent .recogCatLink");
		var recogPanes = $$("#leftContent .recogCat");
		
		if (recogToggles.length > 0) {
			var recogAccordion = new Accordion(recogToggles, recogPanes, {
				show: 0,
				height: true,
				width: false,
				opacity: false,
				alwaysHide: true
			});
		}
		
		
		// find and accordionize presentations content
		
		var presToggles = $$("#leftContent .presCatLink");
		var presPanes = $$("#leftContent .presCat");
		
		if (presToggles.length > 0) {
			var presAccordion = new Accordion(presToggles, presPanes, {
				show: 0,
				height: true,
				width: false,
				opacity: false,
				alwaysHide: true
			});
		}
		

		// initialize content pane elements

		var contentPane = $("content");

		var leftPane = $("leftContent");

		var rightPane = $("rightContent");

		

		// initialize animations

		var contentAnim = new Fx.Tween(contentPane, {

			link: "cancel",

			property: "height",

			unit: "px",

			duration: contentDuration,

			transition: Fx.Transitions.Quad.easeOut

		});

		var leftAnim = new Fx.Tween(leftPane, {

			link: "cancel",

			property: "height",

			unit: "px",

			duration: contentDuration,

			transition: Fx.Transitions.Quad.easeOut

		});

		var rightAnim = new Fx.Tween(rightPane, {

			link: "cancel",

			property: "height",

			unit: "px",

			duration: contentDuration,

			transition: Fx.Transitions.Quad.easeOut

		});

		

		// play starting animations

		contentAnim.start(0, pageHeight);

		leftAnim.start(0, pageHeight - contentOffset);

		rightAnim.start(0, pageHeight - contentOffset);

		

		// get profile links

		var profileLinks = $$(profileElements).filter(function(profileLink) {

			return profileLink.rel && profileLink.rel.test(profileRel);

		});

		

		// adds event listeners for profile links

		profileLinks.each(function(profileLink) {

			

			// initializes targetURL property

			profileLink.targetURL = profileLink.getProperty("href");

			profileLink.setProperty("href", "javascript:void(0);");

			

			// Click event listener to play animation and navigate to URL

			profileLink.addEvent("click", function() {

				

				contentAnim.start(pageHeight, 0).chain(function() {

					window.location = profileLink.targetURL;

				});

				

				leftAnim.start(pageHeight - contentOffset, 0);

				rightAnim.start(pageHeight - contentOffset, 0);

				

			});

			

		});

		

		// initialize publication page elements

		var pubLinkSet = $("publicationLinks");

		var pubPreview = $("publicationPreview");

		var pubBack = $("publicationBack");

		var pubDetails = $$(".publicationDetail");

		

		// checks for publication page links

		var pubLinks = $$(publicationElements).filter(function(pubLink) {

			return pubLink.rel && pubLink.rel.test(publicationRel);

		});

		

		// adds event listener to back link

		if (pubBack != null) {pubBack.addEvent("click", function() {

			

			// hide preview window & back link and show links

			pubPreview.setStyle("display", "none");

			pubBack.setStyle("display", "none");

			pubLinkSet.setStyle("display", "block");

			

			// hide all details

			pubDetails.each(function(pubDetail) {

				pubDetail.setStyle("display", "none");

			});

			

		});}

		

		// adds event listeners for publication links

		pubLinks.each(function(pubLink) {

			

			// initializes target properties

			pubLink.targetDetail = pubLink.rel.replace(/^.*?\[(.*?)\].*?$/, "$1");

			pubLink.targetImage = new Asset.image(pubLink.getProperty("href"));

			pubLink.setProperty("href", "javascript:void(0);");

			pubLink.setProperty("target", "");

			

			// Click event listener to load detail & image

			pubLink.addEvent("click", function() {

				

				// show preview window & back link and hide links

				pubPreview.setStyle("display", "block");

				pubBack.setStyle("display", "block");

				pubLinkSet.setStyle("display", "none");

				

				// inject image into preview window

				pubPreview.empty();

				this.targetImage.inject(pubPreview);

				

				// display correct detail

				$(this.targetDetail).setStyle("display", "block");

				

			});

			

		});

		

		// initialize people page elements

		var peopleDetails = $$(".peopleDetail");

		

		// checks for people page controls

		var peopleCatLinks = $$(peopleElements).filter(function(peopleCatLink) {

			return peopleCatLink.rel && peopleCatLink.rel.test(peopleCatRel);

		});

		

		// adds event listeners for people categories

		peopleCatLinks.each(function(peopleCatLink) {

			

			// initializes target properties
			
			var catListName = peopleCatLink.rel.replace(/^.*?\[(.*?)\].*?$/, "$1");

			/*
			useDrops = true;
			useDrops2 = true;
			if (catListName == "p2002") {
				catRowDrop1 = $("p2003");
				catRowDrop2 = $("p2004");
				catRowDrop3 = $("p2005");
				catRowDrop4 = $("p2006");
				catRowDrop5 = $("p2007");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2003") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2004");
				catRowDrop3 = $("p2005");
				catRowDrop4 = $("p2006");
				catRowDrop5 = $("p2007");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2004") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2005");
				catRowDrop4 = $("p2006");
				catRowDrop5 = $("p2007");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2005") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2004");
				catRowDrop4 = $("p2006");
				catRowDrop5 = $("p2007");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2006") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2004");
				catRowDrop4 = $("p2005");
				catRowDrop5 = $("p2007");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2007") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2004");
				catRowDrop4 = $("p2005");
				catRowDrop5 = $("p2006");
				catRowDrop6 = $("p2008");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2008") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2004");
				catRowDrop4 = $("p2005");
				catRowDrop5 = $("p2006");
				catRowDrop6 = $("p2007");
				catRowDrop7 = $("p2009");
				useDrops2 = false;
			}
			else if (catListName == "p2009") {
				catRowDrop1 = $("p2002");
				catRowDrop2 = $("p2003");
				catRowDrop3 = $("p2004");
				catRowDrop4 = $("p2005");
				catRowDrop5 = $("p2006");
				catRowDrop6 = $("p2007");
				catRowDrop7 = $("p2008");
				useDrops2 = false;
			}
			else if (catListName == "r2003") {
				catRowDrop1 = $("r2005");
				catRowDrop2 = $("r2006");
				catRowDrop3 = $("r2007");
				catRowDrop4 = $("r2008");
				useDrops = false;
			}
			else if (catListName == "r2005") {
				catRowDrop1 = $("r2003");
				catRowDrop2 = $("r2006");
				catRowDrop3 = $("r2007");
				catRowDrop4 = $("r2008");
				useDrops = false;
			}
			else if (catListName == "r2006") {
				catRowDrop1 = $("r2003");
				catRowDrop2 = $("r2005");
				catRowDrop3 = $("r2007");
				catRowDrop4 = $("r2008");
				useDrops = false;
			}
			else if (catListName == "r2007") {
				catRowDrop1 = $("r2003");
				catRowDrop2 = $("r2005");
				catRowDrop3 = $("r2006");
				catRowDrop4 = $("r2008");
				useDrops = false;
			}
			else if (catListName == "r2008") {
				catRowDrop1 = $("r2003");
				catRowDrop2 = $("r2005");
				catRowDrop3 = $("r2006");
				catRowDrop4 = $("r2007");
				useDrops = false;
			}
			else {
				useDrops = false;
				useDrops2 = false;
			}
			peopleCatLink.useDrops = useDrops;
			peopleCatLink.useDrops2 = useDrops2;
			*/

			var catList = $(catListName);

			peopleCatLink.catListInner = catList.getFirst();

			peopleCatLink.catAnimation = new Fx.Tween(catList, {

				link: "cancel",

				property: "height",

				unit: "px",

				duration: contentDuration,

				transition: Fx.Transitions.Quad.easeOut

			});
			
			/*
			if (useDrops || useDrops2) {
				peopleCatLink.dropAnimation1 = new Fx.Tween(catRowDrop1, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
				peopleCatLink.dropAnimation2 = new Fx.Tween(catRowDrop2, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
				peopleCatLink.dropAnimation3 = new Fx.Tween(catRowDrop3, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
				peopleCatLink.dropAnimation4 = new Fx.Tween(catRowDrop4, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
			}
			if (useDrops) {
				peopleCatLink.dropAnimation5 = new Fx.Tween(catRowDrop5, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
				peopleCatLink.dropAnimation6 = new Fx.Tween(catRowDrop6, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
				peopleCatLink.dropAnimation7 = new Fx.Tween(catRowDrop7, {
					link: "cancel",
					property: "height",
					unit: "px",
					duration: contentDuration,
					transition: Fx.Transitions.Quad.easeOut
				});
			}
			*/

			peopleCatLink.catExpanded = false;

			

			// Click event listener to hide or display category

			peopleCatLink.addEvent("click", function() {

				

				// set expanded property

				this.catExpanded = !this.catExpanded;

				

				// toggle cateogory

				if (this.catExpanded) {
					
					/*
					var tweenAmount = this.catListInner.getSize().x + 20;
					
					if (this.useDrops) {
						tweenAmount = 170;
					}
					*/
					
					this.catAnimation.start(this.catListInner.getSize().x + 10);
					
					/*
					if (this.useDrops || this.useDrops2) {
						this.dropAnimation1.start(0);
						this.dropAnimation2.start(0);
						this.dropAnimation3.start(0);
						this.dropAnimation4.start(0);
					}
					if (this.useDrops) {
						this.dropAnimation5.start(0);
						this.dropAnimation6.start(0);
						this.dropAnimation7.start(0);	
					}
					*/

				}

				else {

					this.catAnimation.start(0);

				}



				// hide all details

				peopleDetails.each(function(peopleDetail) {

					peopleDetail.setStyle("display", "none");

				});

				

			});

			

		});

		

		// checks for people page links

		var peopleLinks = $$(peopleElements).filter(function(peopleLink) {

			return peopleLink.rel && peopleLink.rel.test(peopleRel);

		});

		

		// adds event listeners for people links

		peopleLinks.each(function(peopleLink) {

			

			// initializes target properties

			peopleLink.targetDetail = peopleLink.rel.replace(/^.*?\[(.*?)\].*?$/, "$1");

			

			// Click event to show correct person's details

			peopleLink.addEvent("click", function() {

				

				// show details

				$(this.targetDetail).setStyle("display", "block");

				

				// hide category lists

				peopleCatLinks.each(function(peopleCatLink) {

					peopleCatLink.catAnimation.set(0);

					peopleCatLink.catExpanded = false;

				});

				

			});

			

		});

		

	}

	

});