﻿function Subnavigation() {}
Subnavigation.prototype.EmptySubnavigation = function() {
	$("#subnavigationDiv").empty();
}
Subnavigation.prototype.UndoSubnavigationStyles = function() {
	$("#subnavigationDiv").css("visibility", "collapse");
	$("#subnavigationDiv").css("width", "auto");
	$("#subnavigationDiv").css("margin-left", "0px");
}


function ServicesSubnavigation() {}
ServicesSubnavigation.prototype = new Subnavigation();
ServicesSubnavigation.prototype.constructor = function() {}
ServicesSubnavigation.prototype.GetSubnavigation = function() {
	var unorderedList = $("<ul id=\"servicesUL\" class=\"subNavListingVertical\"></ul>")
	var listItem = $("<li id=\"servicesPrintLI\"></li>");
	var link = $("<a href=\"designPrint.php\" id=\"servicesPrintLink\" class=\"subMenuGreen\">print design</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"servicesWebLI\"></li>");
	link = $("<a href=\"designWeb.php\" id=\"servicesWebLink\" class=\"subMenuBlue\">web design</a>");
	listItem.append(link);
	unorderedList.append(listItem);
	$("#subnavigationDiv").append(unorderedList);	
	this.AddStyles();
}
ServicesSubnavigation.prototype.AddStyles = function() {
	$("#subnavigationDiv").css("position", "absolute");
	$("#subnavigationDiv").css("top", "90px");
	$("#subnavigationDiv").css("left", "695px");
	$("#subnavigationDiv").css("visibility", "visible");
	$("#subnavigationDiv").css("width", "110px");
}
ServicesSubnavigation.prototype.DestroySubnavigation = function(pageEvent) {
	var isHighlighted;
	if (pageEvent != undefined) {
		var fromElementID = pageEvent.fromElement.id;
		var relatedTarget = pageEvent.relatedTarget;
		switch(fromElementID) {
			case "servicesPrintLink":
			case "servicesPrintLI":
			case "servicesWebLI":
			case "servicesWebLink":
				if (relatedTarget.id == "background") {
					this.EmptySubnavigation(fromElementID);
					this.UndoSubnavigationStyles();
					isHighlighted = true;
					break;
				}
			case "servicesUL":
				isHighlighted = false;
				break;
			case "menuServices":
			case "subnavigationDiv":
				switch (relatedTarget.id) {
					case "servicesPrintLink":
					case "servicesPrintLI":
					case "servicesWebLI":
					case "servicesWebLink":
					case "servicesUL":
						isHighlighted = false;
						break;
					case "":
						this.EmptySubnavigation(fromElementID);
						this.UndoSubnavigationStyles();
						isHighlighted = true;
						break;
					default:
						if (relatedTarget.ParentElement != undefined) {
							switch (relatedTarget.ParentElement.id) {
								case fromElementID:
								case "servicesUL":
									isHighlighted = false;
									break;
								default:
									this.EmptySubnavigation(fromElementID);
									this.UndoSubnavigationStyles();
									isHighlighted = true;
									break;
							}
						} else {
							this.EmptySubnavigation(fromElementID);
							this.UndoSubnavigationStyles();
							isHighlighted = true;
						}	
						break;
				}
				break;
			default:
				this.EmptySubnavigation(fromElementID);
				this.UndoSubnavigationStyles();
				isHighlighted = false;
				break;
		}
	}
	return isHighlighted;
}

function PortfolioSubnavigation() {}
PortfolioSubnavigation.prototype = new Subnavigation();
PortfolioSubnavigation.prototype.constructor = function() {}
PortfolioSubnavigation.prototype.GetSubnavigation = function() {
	var unorderedList = $("<ul id=\"portfolioUL\" class=\"subNavListingHorizontal\"></ul>")
	var listItem = $("<li id=\"portfolioBrochuresLI\"></li>");
	var link = $("<a href=\"portfolioBrochures.php\" id=\"portfolioBrochures\" class=\"subMenuBlue\">brochures</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioAnnualReportsLI\"></li>");
	link = $("<a href=\"portfolioAnnualReports.php\" id=\"portfolioAnnualReports\" class=\"subMenuBlue\">annual reports</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioInvitationsLI\"></li>");
	link = $("<a href=\"portfolioInvitations.php\" id=\"portfolioInvitations\" class=\"subMenuBlue\">invitations</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioPackagingLI\"></li>");
	link = $("<a href=\"portfolioPackaging.php\" id=\"portfolioPackaging\" class=\"subMenuBlue\">packaging</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioPhotographyLI\"></li>");
	link = $("<a href=\"portfolioPhotography.php\" id=\"portfolioPhotography\" class=\"subMenuBlue\">photography</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioWebLI\"></li>");
	link = $("<a href=\"portfolioWeb.php\" id=\"portfolioWeb\" class=\"subMenuBlue\">web work</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioLogosLI\"></li>");
	link = $("<a href=\"portfolioLogos.php\" id=\"portfolioLogos\" class=\"subMenuBlue\">logos</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"portfolioSignageLI\"></li>");
	link = $("<a href=\"portfolioSignage.php\" id=\"portfolioSignage\" class=\"subMenuBlue\">signage</a>");
	listItem.append(link);

	$("#subnavigationDiv").append(unorderedList);		
	unorderedList.append(listItem);

	this.AddStyles();
}
PortfolioSubnavigation.prototype.AddStyles = function() {
	$("#subnavigationDiv").css("position", "absolute");
	$("#subnavigationDiv").css("top", "90px");
	$("#subnavigationDiv").css("left", "355px");
	$("#subnavigationDiv").css("visibility", "visible");
	$("#subnavigationDiv").css("width", "580px");
}
PortfolioSubnavigation.prototype.DestroySubnavigation = function(pageEvent) {
	//debugger;
	var isHighlighted;
	if (pageEvent != undefined) {
		var fromElementID = pageEvent.fromElement.id;
		var relatedTarget = pageEvent.relatedTarget;
		switch(fromElementID) {
			case "portfolioAnnualReportsLI":
			case "portfolioBrochuresLI":
			case "portfolioInvitationsLI":
			case "portfolioLogosLI":
			case "portfolioPackagingLI":
			case "portfolioPhotographyLI":
			case "portfolioSignageLI":
			case "portfolioWebLI":
				isHighlighted = false;
				break;
			case "portfolioAnnualReports":
			case "portfolioBrochures":
			case "portfolioInvitations":
			case "portfolioLogos":
			case "portfolioPackaging":
			case "portfolioPhotography":
			case "portfolioSignage":
			case "portfolioWeb":
				if (relatedTarget.id == "background") {
					this.EmptySubnavigation(fromElementID);
					this.UndoSubnavigationStyles();
					isHighlighted = true;
				} else {
					isHighlighted = false;
				}
				break;
			case "portfolioUL":
				isHighlighted = false;
				break;
			case "menuPortfolio":
			case "subnavigationDiv":
				switch (relatedTarget.id) {
					case "portfolioAnnualReportsLI":
					case "portfolioAnnualReports":
					case "portfolioBrochures":
					case "portfolioBrochuresLI":
					case "portfolioInvitations":
					case "portfolioInvitationsLI":
					case "portfolioLogos":
					case "portfolioLogosLI":
					case "portfolioPackaging":
					case "portfolioPackagingLI":
					case "portfolioPhotography":
					case "portfolioPhotographyLI":
					case "portfolioSignage":
					case "portfolioSignageLI":
					case "portfolioWeb":
					case "portfolioWebLI":
					case "portfolioUL":
						isHighlighted = false;
						break;
					case "":
						this.EmptySubnavigation(fromElementID);
						this.UndoSubnavigationStyles();
						isHighlighted = true;
						break;
					default:
						if (relatedTarget.ParentElement != undefined) {
							switch (relatedTarget.ParentElement.id) {
								case fromElementID:
								case "portfolioUL":
									isHighlighted = false;
									break;
								default:
									this.EmptySubnavigation(fromElementID);
									this.UndoSubnavigationStyles();
									isHighlighted = true;
									break;
							}
						} else {
							this.EmptySubnavigation(fromElementID);
							this.UndoSubnavigationStyles();
							isHighlighted = true;
						}						
						break;
				}
				break;
			default:
				this.EmptySubnavigation(fromElementID);
				this.UndoSubnavigationStyles();
				isHighlighted = true;
				break;
		}
	}
	return isHighlighted;
}

function AboutSubnavigation() {}
AboutSubnavigation.prototype = new Subnavigation();
AboutSubnavigation.prototype.constructor = function() {}
AboutSubnavigation.prototype.GetSubnavigation = function() {
	var unorderedList = $("<ul id=\"aboutUL\" class=\"subNavListingVertical\"></ul>")
	var listItem = $("<li id=\"aboutSanaLI\"></li>");
	var link = $("<a href=\"aboutSana.php\" id=\"aboutSanaLink\" class=\"subMenuGreen\">Sana Mantell</a>");
	listItem.append(link);
	unorderedList.append(listItem);

	listItem = $("<li id=\"aboutAdamLI\"></li>");
	link = $("<a href=\"aboutAdam.php\" id=\"aboutAdamLink\" class=\"subMenuBlue\">Adam Mantell</a>");
	listItem.append(link);
	unorderedList.append(listItem);
	$("#subnavigationDiv").append(unorderedList);	
	this.AddStyles();
}
AboutSubnavigation.prototype.AddStyles = function() {
	$("#subnavigationDiv").css("position", "absolute");
	$("#subnavigationDiv").css("left", "575px");
	$("#subnavigationDiv").css("top", "90px");
	$("#subnavigationDiv").css("visibility", "visible");
	$("#subnavigationDiv").css("width", "110px");
//	$("#subnavigationDiv").css("margin-left", "220px");
}
AboutSubnavigation.prototype.DestroySubnavigation = function(pageEvent) {
	var isHighlighted;
	if (pageEvent != undefined) {
		var fromElementID = pageEvent.fromElement.id;
		var relatedTarget = pageEvent.relatedTarget;
		switch(fromElementID) {
			case "aboutAdamLink":
				if (relatedTarget.id == "background") {
					this.EmptySubnavigation(fromElementID);
					this.UndoSubnavigationStyles();
					isHighlighted = true;
					break;
				}
			case "aboutAdamLI":
			case "aboutSanaLI":
			case "aboutSanaLink":
			case "aboutUL":
				isHighlighted = false;
				break;
			case "menuAbout":
			case "subnavigationDiv":
				switch (relatedTarget.id) {
					case "aboutAdamLink":
					case "aboutAdamLI":
					case "aboutSanaLI":
					case "aboutSanaLink":
					case "aboutUL":
						isHighlighted = false;
						break;
					case "":
						this.EmptySubnavigation(fromElementID);
						this.UndoSubnavigationStyles();
						isHighlighted = true;
						break;
					default:
						if (relatedTarget.ParentElement != undefined) {
							switch (relatedTarget.ParentElement.id) {
								case fromElementID:
								case "aboutUL":
									isHighlighted = false;
									break;
								default:
									this.EmptySubnavigation(fromElementID);
									this.UndoSubnavigationStyles();
									isHighlighted = true;
									break;
							}
						} else {
							this.EmptySubnavigation(fromElementID);
							this.UndoSubnavigationStyles();
							isHighlighted = true;
						}
						break;
				}
				break;
			default:
				isHighlighted = true;
				this.EmptySubnavigation(fromElementID);
				this.UndoSubnavigationStyles();
				break;
		}
	}
	return isHighlighted;
}

function CurrentPage() {

	var aboutSubnavigation = null;
	var portfolioSubnavigation = null;
	var servicesSubnavigation = null;

	this.rootMenu = null;
	this.activeMenu = null;
	this.SetRootMenu = function() {
		var page = window.location.href;
		var pageArray = page.split("/");
		page = pageArray[pageArray.length - 1];
		page = page.replace(".php", "");
		
		var patternAbout = /^about/i;
		var patternBlog = /^blog/i;
		var patternContact = /^contact/i;
		var patternDesign = /^design/i;
		var patternHome = /^index/i;
		var patternPortfolio = /^portfolio/i;

		if (patternAbout.test(page)) {
			this.rootMenu = "About";
		} else if(patternBlog.test(page)) {
			this.rootMenu = "Blog";
		} else if(patternContact.test(page)) {
			this.rootMenu = "Contact";
		} else if(patternHome.test(page)) {
			this.rootMenu = "Home";
		} else if (patternPortfolio.test(page)) {
			this.rootMenu = "Portfolio";
		} else if(patternDesign.test(page)) {
			this.rootMenu = "Services";
		} else {
			this.rootMenu = "About";
		}
	}
	
	this.SetActiveMenu = function(linkName) {
		this.activeMenu = linkName.replace("menu", "");
		switch (this.activeMenu) {
			case "About":
				aboutSubnavigation = new AboutSubnavigation();
				aboutSubnavigation.GetSubnavigation();
				break;
			case "Portfolio":
				portfolioSubnavigation = new PortfolioSubnavigation();
				portfolioSubnavigation.GetSubnavigation();
				break;
			case "Services":
				servicesSubnavigation = new ServicesSubnavigation();
				servicesSubnavigation.GetSubnavigation();
				break;
		}
	}
	
	this.DestroyMenu = function(pageEvent) {
		var isHighlighted;
		switch (this.activeMenu) {
			case "About":
				isHighlighted = aboutSubnavigation.DestroySubnavigation(pageEvent);
				break;
			case "Portfolio":
				isHighlighted = portfolioSubnavigation.DestroySubnavigation(pageEvent);
				break;
			case "Services":
				isHighlighted = servicesSubnavigation.DestroySubnavigation(pageEvent);
				break;
		}
		return isHighlighted;
	}
}

