/**
 * @author alexrich
 */
toolbarSingleton = function(){
	
	function onItemClick(item){
		loadPage(item.linktext.toLowerCase());
    }
	
	//itemText is optional, only when text of menu.Item is 
	//different from the .htm file
	//filenames must be lowercase
	function itemMaker(itemName, itemText){
		if (!itemText) {
			var result = new Ext.menu.Item({
				text: itemName,
				handler: onItemClick
			});
		}
		else{
			var result = new Ext.menu.Item({
				text: itemText,
				handler: onItemClick
			});
		}
		result.tag = "pages/" + itemName.toLowerCase() + ".htm";
		result.linktext = itemName;
		
		return result;
	}
	
	function getFacultyAndStuffMenu(){
		var facultyPublications = itemMaker("facultypublications", "Publications");
		var instituteCDD = itemMaker("institutecdd", "Institute of Civic Discourse and Democracy");
		var bios = itemMaker("bios", "Bios");
		
		var facultyAndStaff = new Ext.menu.Menu({
	        id: 'facultyAndStaff',
	        items: [bios, facultyPublications, instituteCDD]
	    });
		
		return facultyAndStaff;
	}
	
	function getAlumniAndFriendsButton(){
		var alumniAndFriends = new Ext.Toolbar.Button({
	        text: 'Alumni & Friends',
	        handler: onItemClick
	    });
		alumniAndFriends.tag = "pages/alumniandfriends.htm";
		alumniAndFriends.linktext = "AlumniAndFriends";
		
		return alumniAndFriends;
	}
	
	
	function getCurrentStudentsMenu(){
		var undergraduateMenu = getUndergraduateMenu("currentstudent");
		var graduateMenu = getGraduateMenu();

		var debate = itemMaker("currentstudentsdebate", "Debate");
		var forensics = itemMaker("forensics","Forensics");
		var studyAbroad = itemMaker("StudyAbroad", "Study Abroad");
		var internship = itemMaker("Internship");
		var actrJournal = itemMaker("actrjournal", "ACTR Journal");
		var SLO = itemMaker("slo", "Student Learning Outcomes");
		var mockTrial = itemMaker("mockTrial", "Mock Trial");
		
		var menu = new Ext.menu.Menu({
			items : [{
				text: "Undergraduate",
				menu: undergraduateMenu,
				hideOnClick : "false"
			},{
				text: "Graduate",
				menu: graduateMenu,
				hideOnClick : "false"
			},studyAbroad,
			internship,
			debate,
			forensics,
			mockTrial,
			actrJournal,
			SLO
			]
		});
		return menu;
	}
	
	function getProspectiveStudentsMenu(){
		var undergraduateMenu = getUndergraduateMenu("prospectivestudent");
		var graduateMenu = getGraduateMenu();

		var debate = itemMaker("prospectivedebate", "Debate");
		var forensics = itemMaker("Forensics");
		var mockTrial = itemMaker("mockTrial", "Mock Trial");
		
		var menu = new Ext.menu.Menu({
			items : [{
				text: "Undergraduate",
				menu: undergraduateMenu,
				hideOnClick : "false"
			},{
				text: "Graduate",
				menu: graduateMenu,
				hideOnClick : "false"
			},debate,forensics, mockTrial
			]
		});
		return menu;
	}
	
	function getGraduateMenu(){
		var menu = new Ext.menu.Menu();
		
		var admissions = itemMaker("Admissions");
	    var programs = itemMaker("gradprograms","Programs");
	    var aid = itemMaker("gradaid","Aid");
		var research = itemMaker("Research");
		
		menu.add(admissions);
		menu.add(programs);
		menu.add(aid);
		//menu.add(research); no info yet
		
		return menu;
	}
	
	function getUndergraduateMenu(typeOfStudent){
		var menu = new Ext.menu.Menu({
			allowOtherMenus:true
		});
		
		var degreeOptions = itemMaker("DegreeOptions", "Degree Options");
		
		var scholarships = itemMaker("Scholarships");
		
		var publicspeaking = itemMaker("publicspeaking", "Public Speaking");
		
		var outsidespeechreports = itemMaker("outsidespeechreports", "Outside Speech Reports");
		
		var lambdapieta = itemMaker("lambdapieta", "Lambda Pi Eta");
		
		var researchEZine = itemMaker("researchezine", "Research E-Zine");
		
		var publicSpeakingMenu = new Ext.menu.Menu({
			id: "publicSpeakingMenu",
			items :  [publicspeaking, outsidespeechreports]
		});
		
		//menu.add(publicSpeakingMenu);
		
		if(typeOfStudent.toLowerCase == "prospectivestudent"){
			menu.add(degreeOptions);
			menu.add(scholarships);
		}
		
		else if (typeOfStudent.toLowerCase == "currentstudent"){
			menu.add(degreeOptions);
			menu.add(scholarships);
			menu.add(publicspeaking);
			menu.add(outsidespeechreports);
		}
		
		else {
			menu.add(degreeOptions);
			menu.add(scholarships);
			menu.add(publicspeaking);
			menu.add(outsidespeechreports);
			//menu.add(lambdapieta); no info yet
			//menu.add(reserchEZine); no info yet
		}
		return menu;
	}
	
	return{
		init : function(){
			var currentStudentsMenu = getCurrentStudentsMenu();
			var alumniAndFriendsButton = getAlumniAndFriendsButton();
			var facultyAndStaffMenu = getFacultyAndStuffMenu();
			var prospectiveStudentsMenu = getProspectiveStudentsMenu();
			//var researchMenu = getResearchMenu();
			
			var tb = new Ext.Toolbar('toolbar');
			
			tb.add({
				cls: 'x-btn-text-icon bmenu',
				text : "Prospective Students",
				menu : prospectiveStudentsMenu
			});
			tb.addSeparator();
			tb.add({
				cls: 'x-btn-text-icon bmenu', // icon and text class
				text: 'Current Students',
				menu: currentStudentsMenu // assign menu by instance
			});
			tb.addSeparator();
			tb.add(alumniAndFriendsButton);
			tb.addSeparator();
			tb.add({
				cls: 'x-btn-text-icon bmenu', // icon and text class
				text: 'Faculty & Staff',
				menu: facultyAndStaffMenu
			});
		}
	};
}();
