/**
 * @author alex
 */
toolbarSingleton = function(){
	var prospectiveStudentMenu;
	var currentStudentsMenu;
	var academicProgramsMenu;
	var alumniAndFriendsMenu;
	var photoArchivesMenu;
	var supportKSUTheatreMenu;
	var facultyAndStaffMenu;
	var currentSeasonMenu;
	var contactUsMenu;
	var mastersDegreeMenu;
	var bachelorDegreeMenu;
	
	function onMenuItemClick(){
		Ext.History.add(this.tag);
	}
	
	function loadMastersDegreeMenu(){
		mastersDegreeMenu = new Ext.menu.Menu();
		
		var overviewItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var actingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var directingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var designAndTechnicalItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var stageManagementItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var generalItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var theatreManagement = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var dramaTherapy = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var historyAndCriticism = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		overviewItem.setText("Overview");
		actingItem.setText("Acting");
		directingItem.setText("Directing");
		designAndTechnicalItem.setText("Design/Technical");
		stageManagementItem.setText("Stage Management");
		generalItem.setText("General");
		theatreManagement.setText("Theatre Management");
		dramaTherapy.setText("Drama Therapy");
		historyAndCriticism.setText("History/Criticism");
		
		overviewItem.tag = "graduate/Overview";
		actingItem.tag = "graduate/Acting";
		directingItem.tag = "graduate/Directing"
		designAndTechnicalItem.tag = "graduateDesignAndTechnical";
		stageManagementItem.tag = "graduateStageManagement";
		generalItem.tag = "graduateGeneral";
		theatreManagement.tag = "graduateTheatreManagement";
		dramaTherapy.tag = "graduate/DramaTherapy";
		historyAndCriticism.tag = "graduateHistoryAndCriticism";
		
		mastersDegreeMenu.add(overviewItem);
		//mastersDegreeMenu.add(actingAndDirectingItem);
		//mastersDegreeMenu.add(designAndTechnicalItem);
		//mastersDegreeMenu.add(stageManagementItem);
		//mastersDegreeMenu.add(generalItem);
		//mastersDegreeMenu.add(theatreManagement);
		mastersDegreeMenu.add(dramaTherapy);
		//mastersDegreeMenu.add(historyAndCriticism);
	}
	
	function loadBachleorDegreeMenu(){
		bachleorDegreeMenu = new Ext.menu.Menu();
		
		var overview = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var actingAndDirectingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var designAndTechnicalItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var stageManagementItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var generalItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var playwriting = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var areasOfStudy = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var actingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var directingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		actingItem.setText("Acting");
		directingItem.setText("Directing");
		overview.setText("Overview");
		designAndTechnicalItem.setText("Design/Technical");
		stageManagementItem.setText("Stage Management");
		generalItem.setText("General");
		playwriting.setText("Playwriting");

		areasOfStudy.setText("Areas Of Study");
		
		areasOfStudy.tag = "undergraduate/areasOfStudy";
		overview.tag = "undergraduate/Overview";
		designAndTechnicalItem.tag = "undergraduate/DesignAndTechnical";
		stageManagementItem.tag = "undergraduate/StageManagement";
		generalItem.tag = "undergraduate/General";
		playwriting.tag = "playwriting";
		actingItem.tag = "undergraduate/Acting";
		directingItem.tag = "undergraduate/Directing"
			
		bachleorDegreeMenu.add(overview);
		bachleorDegreeMenu.add(areasOfStudy);
		/*
		bachleorDegreeMenu.add(actingItem);
		bachleorDegreeMenu.add(directingItem);
		bachleorDegreeMenu.add(designAndTechnicalItem);
		bachleorDegreeMenu.add(playwriting);
		bachleorDegreeMenu.add(stageManagementItem);*/
		bachleorDegreeMenu.add(generalItem);
	}
	
	function loadProspectiveStudentMenu(){
		loadBachleorDegreeMenu();
		loadMastersDegreeMenu();
		
		var scholarshipFormItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var FAQItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var alumnsWorkItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var admissionsItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var financialAidItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var soundAndLightingItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var facilitiesItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var facebookItem = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		facilitiesItem.setText("Facilities");
		soundAndLightingItem.setText("Sound And Lighting");
		scholarshipFormItem.setText("Scholarship Form");
		FAQItem.setText("FAQ");
		alumnsWorkItem.setText("Where Our Alumns Work");
		admissionsItem.setText("Admissions");
		financialAidItem.setText("Financial Aid");
		facebookItem.setText("Facebook Group");

		facilitiesItem.tag = "facilities";
		soundAndLightingItem.tag = "soundAndLighting";
		scholarshipFormItem.tag = "scholarshipForm";
		FAQItem.tag = "FAQ";
		alumnsWorkItem.tag = "alumnsWork";
		admissionsItem.tag = "admissions";
		financialAidItem.tag = "financialAid";
		facebookItem.tag = "prospectStudentFacebookGroup";

		
		prospectiveStudentMenu = new Ext.menu.Menu({
			items : [
				{
					text : "Undergraduate",
					menu : bachleorDegreeMenu,
					hideOnClick : false
				},
				{
					text : "Graduate",
					menu : mastersDegreeMenu,
					hideOnClick : false
				}, facilitiesItem, scholarshipFormItem, admissionsItem, soundAndLightingItem, facebookItem
				 //alumnsWorkItem, FAQItem, financialAidItem
			]
		})
		
		Ext.get("prospective-students").on("click", showMenu);
		
		function showMenu(){
			var menuEl = prospectiveStudentMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,153]);
			prospectiveStudentMenu.show(menuEl,"tl");
		}
	}
	function loadCurrentStudentsMenu(){
		currentStudentsMenu = new Ext.menu.Menu();
		
		var overview = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var productionHandbook = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var monthlyCalendar = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var departmentScholarships = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var academicHandbook = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var productionCalendar = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		productionCalendar.setText("Production Calendar");
		overview.setText("Overview");
		productionHandbook.setText("Production Handbook");
		monthlyCalendar.setText("Monthly Calendar");
		departmentScholarships.setText("Department Scholarships");
		academicHandbook.setText("Academic Handbook");
		
		overview.tag = "currentStudentsOverview";
		productionHandbook.tag = "productionHandbook";
		productionCalendar.tag = "productionCalendar";
		monthlyCalendar.tag = "monthlyCalendar";
		departmentScholarships.tag = "departmentScholarships";
		academicHandbook.tag = "academicHandbook";
		
		//		currentStudentsMenu.add(overview);
		currentStudentsMenu.add(productionHandbook);
		currentStudentsMenu.add(productionCalendar);
		currentStudentsMenu.add(academicHandbook);

		//currentStudentsMenu.add(monthlyCalendar);
		//currentStudentsMenu.add(departmentScholarships);
		
		Ext.get("current-students").on("click", showMenu);
		
		function showMenu(){
			var menuEl = currentStudentsMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,220]);
			currentStudentsMenu.show(menuEl,"tl");
		}		
	}
	function loadAcademicProgramsMenu(){
		academicProgramsMenu = new Ext.menu.Menu();
		
		var academicHandbook = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var bachelorDegree = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var masterDegree = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var slo = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		slo.setText("Student Learning Outcomes");
		academicHandbook.setText("Academic Handbook");
		bachelorDegree.setText("Bachelor's Degree");
		masterDegree.setText("Master's Degree");
		
		slo.tag = "slo";
		academicHandbook.tag = "academicHandbook";
		bachelorDegree.tag = "undergraduate/AcademicProgram";
		masterDegree.tag = "graduate/Overview";
		
		//academicProgramsMenu.add(academicHandbook);
		academicProgramsMenu.add(bachelorDegree);
		academicProgramsMenu.add(masterDegree);		
		academicProgramsMenu.add(slo);
		
		Ext.get("academic-programs").on("click", showMenu);
		function showMenu(){
			var menuEl = academicProgramsMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,280]);
			academicProgramsMenu.show(menuEl, "tl");
		}
	}
	function loadAlumniAndFriendsMenu(){
		alumniAndFriendsMenu = new Ext.menu.Menu();
		
		var personalData = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var yourNews = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var newsletter = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var alumnWorkLocation = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var alumnNews = new Ext.menu.Item({
			handler : onMenuItemClick
		});

			
		personalData.tag = "personalDataForm";
		yourNews.tag = "yourNews";
		newsletter.tag = "newsletter";
		alumnWorkLocation.tag = "alumnWorkLocation";
		alumnNews.tag = "alumnNews";


		alumnNews.setText("Alumn News");		
		personalData.setText("Personal Data Form");
		yourNews.setText("Your News");
		newsletter.setText("Newsletter");
		alumnWorkLocation.setText("Where Alumn and Friends Have Worked")

	
		alumniAndFriendsMenu.add(alumnNews);	
		alumniAndFriendsMenu.add(yourNews);
		alumniAndFriendsMenu.add(personalData);
		//alumniAndFriendsMenu.add(newsletter);
		//alumniAndFriendsMenu.add(alumnWorkLocation);
		
		Ext.get("alumni-and-friends").on("click", showMenu);
		
		function showMenu(){
			var menuEl = alumniAndFriendsMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,342]);
			alumniAndFriendsMenu.show(menuEl, "tl");
		}
		
	}
	function loadPhotoArchivesMenu(){
		photoArchivesMenu = new Ext.menu.Menu();
		
		var year2006to2007 = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var year2005to2006 = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var year2004to2005 = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var year2003to2004 = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var year2002to2003 = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		year2006to2007.setText("2006-2007");
		year2005to2006.setText("2005-2006");
		year2004to2005.setText("2004-2005");
		year2003to2004.setText("2003-2004");
		year2002to2003.setText("2002-2003");
		
		year2006to2007.tag = "year2006to2007Photos";
		year2005to2006.tag = "year2005to2006Photos";
		year2004to2005.tag = "year2004to2005Photos";
		year2003to2004.tag = "year2003to2004Photos";
		year2002to2003.tag = "year2002to2003Photos";
		
		photoArchivesMenu.add(year2006to2007);
		photoArchivesMenu.add(year2005to2006);
		photoArchivesMenu.add(year2004to2005);
		photoArchivesMenu.add(year2003to2004);
		photoArchivesMenu.add(year2002to2003);
		
		// TODO: Changes newsletter-link to photo-archive link
		Ext.get("photo-archives").on("click",showMenu);
		
		function showMenu(){
			var menuEl = photoArchivesMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,419]);
			photoArchivesMenu.show(menuEl, 'tl');
		}
	}
	
	function loadSupportKSUTheatreMenu(){
		supportKSUTheatreMenu = new Ext.menu.Menu();
		
		var joinTheatreGuild = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var buySeatPlaque = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var becomeSubscriber = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		joinTheatreGuild.setText("Join Theatre Guild");
		buySeatPlaque.setText("Buy A Seat Plaque");
		becomeSubscriber.setText("Become A Subscriber");
		
		joinTheatreGuild.tag = "joinTheatreGuild";
		buySeatPlaque.tag = "buySeatPlaque";
		becomeSubscriber.tag = "becomeSubscriber";
		
		supportKSUTheatreMenu.add(joinTheatreGuild);
		supportKSUTheatreMenu.add(buySeatPlaque);
		//supportKSUTheatreMenu.add(becomeSubscriber);
		
		Ext.get("support-ksu-theatre").on('click', showMenu);
		
		function showMenu(){
			var menuEl = supportKSUTheatreMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,409]);
			supportKSUTheatreMenu.show(menuEl, "tl");
		}
	}
	
	function loadCurrentSeasonMenu(){
		currentSeasonMenu = new Ext.menu.Menu();
		
		var mainStage = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var purpleMasque = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		var ebonyTheatre = new Ext.menu.Item({
			handler : onMenuItemClick
		});
		
		mainStage.setText("Main Stage");
		purpleMasque.setText("Purple Masque");
		ebonyTheatre.setText("Ebony Theatre");
		
		mainStage.tag = "mainstage";
		purpleMasque.tag = "purplemasque";
		ebonyTheatre.tag = "ebonytheatre";
		
		currentSeasonMenu.add(mainStage);
		currentSeasonMenu.add(purpleMasque);
		currentSeasonMenu.add(ebonyTheatre);
		
		Ext.get("current-season").on('click', showMenu);
		
		function showMenu(){
			var menuEl = currentSeasonMenu.getEl();
			menuEl.alignTo("buttons","tr",[0,0]);
			currentSeasonMenu.show(menuEl, "tl");
		}
	}
	
	function loadMailingListButton(){
		var el = Ext.get("mailing-list");
		el.on('click', showPage);
		function showPage(){
			Ext.History.add("list");
		}
	}
	
	function loadPhotoArchiveButton(){
		var el = Ext.get("photo-archives");
		el.on('click',showPage);
		function showPage(){
			Ext.History.add("photos");
		}
	}
	
	function loadFacultyAndStaffButton(){
		var el = Ext.get("faculty-and-staff");
		el.on('click',showPage);
		function showPage(){
			Ext.History.add("faculty");
		}
	}
	
	function loadContactUsButton(){
		var el = Ext.get("contact-us");
		el.on('click',showPage);
		function showPage(){
			Ext.History.add("contact");
		}
	}
	
	
	return {
		init : function(){
			loadProspectiveStudentMenu();
			loadCurrentStudentsMenu();
			loadAcademicProgramsMenu();
			loadAlumniAndFriendsMenu();
			//loadPhotoArchivesMenu();
			loadSupportKSUTheatreMenu();
			loadMailingListButton();
			loadPhotoArchiveButton();
			loadFacultyAndStaffButton();
			loadContactUsButton();
			loadCurrentSeasonMenu();
		}
	};
}();
