/*
file:			page.js
author:			jasper morgan
date:			17 May 2007
version:		1.0
comments:		Defines a Page in the Site.  A Page will automatically include a drop-down navigation menu for the site
* 				and optionally a Tabstrip (if the page contains the correct HTML). These features rely on the Yahoo UI Library
* 				(see http://developer.yahoo.com/yui/menu, http://developer.yahoo.com/yui/tabview/).
*/

//alert(urlRoot)
var htmlRoot = "../"; //use this global prefix to place menues elswhere is site heirarchy
var doPreload = false;

//alert(htmlRoot)
function PAGE(){};
PAGE.tabstripId = "tabstrip";
PAGE.tabstripClass = "yui-navset";
PAGE.menubarId = "navbar";
PAGE.menubarAnchor = "banner";
PAGE.oPreloadedImages = new Array();


/**
 * Intialises a Page by adding Menubar and if required a Tabstrip.
 */
PAGE.init = function() {
	PAGE.addMenubar();
	PAGE.addTabstrip();
}




/**
 * Adds a new Tabstrip to a Page. This function checks whether a TabStrip is needed
 * in a Page by checking for a specific element by ID and then checking that the
 * element with that ID has the expected css class.
 */
PAGE.addTabstrip = function() {
	var elTabStrip = document.getElementById(PAGE.tabstripId);

	if (elTabStrip && elTabStrip.className == PAGE.tabstripClass) {
		new YAHOO.widget.TabView(PAGE.tabstripId, {orientation: "left"});
	}
}
/**
 * Adds a Menubar to a Page.
 */
PAGE.addMenubar = function() {

				var oStudioMenu = {
                         text: "The Studio", strongemphasis: true, submenu: { id: "studio", itemdata: [
                                    { text: "Charles H. Cecil", url:htmlRoot + "studio/charlesCecil.html" },
                                    { text: "Studio History", url:htmlRoot + "studio/studioHistory.html" },
                                    { text: "Facilities", url:htmlRoot + "studio/facilities.html" }
                                    ]}
                 };

                var oPhilosophyMenu = {
                         text: "Philosophy", strongemphasis: true, submenu: { id: "philosophy", itemdata: [
                                    { text: "Atelier Tradition", url:htmlRoot + "philosophy/atelierTradition.html" },
                                    { text: "Sight-size Technique", url:htmlRoot + "philosophy/sightsizeTechnique.html" },
                                    { text: "Studio Essays", url:htmlRoot + "philosophy/essays.html" }]}
                 };

                var oCurriculumMenu = {
                         text: "Curriculum",  strongemphasis: true, submenu: { id: "curriculum", itemdata: [
                                    { text: "Full-time Study", url:htmlRoot + "curriculum/fulltimeCurriculum.html" },
                                    { text: "Dates / Tuition", url:htmlRoot + "curriculum/dates.html" }]}
                 };

                 var oSummerMenu = {
                         text: "Summer Courses", strongemphasis: true, submenu: { id: "july", itemdata: [
                                    { text: "Curriculum", url:htmlRoot + "julyCourse/julyCurriculum.html" },
                                    { text: "Dates / Tuition", url:htmlRoot + "julyCourse/julyDates.html" }]}
                 };

                 var oGalleryMenu = {
                 	text: "Gallery", strongemphasis: true, submenu: {id: "gallery", itemdata: [
                 		{text: "Charles Cecil", url:htmlRoot + "gallery/charlesGallery.html"},
                 	    {text: "Studio Gallery", url:htmlRoot + "gallery/studioGallery.html"}
                 		]}
                 };


                var oMenuBar = new YAHOO.widget.MenuBar(PAGE.menubarId, {
                		autosubmenudisplay:true,
                		showdelay:0,
                		hidedelay:0,
                		lazyload:false,
                		clicktohide: false,
                		position: "dynamic"});

				oMenuBar.addItem(oStudioMenu);
				oMenuBar.addItem(oPhilosophyMenu);
				oMenuBar.addItem(oCurriculumMenu);
				oMenuBar.addItem(oSummerMenu);
				oMenuBar.addItem(oGalleryMenu);

                // Render the menu bar
                oMenuBar.render(PAGE.menubarAnchor);
				oMenuBar.show();
};

/**
 * Preloads the Images defined by the PAGE.preloads configuration
 */
PAGE.preloadImages = function() {
	if (doPreload) { //set variable doPreload in the html page to trigger the preloads

		var i = 0;
		for (entryIndex in PAGE.preloads.images) {
			var oEntry = PAGE.preloads.images[entryIndex];

			var sRootPath = oEntry.root;
			for (fileIndex in oEntry.fileNames) {
				var sFileName = oEntry.fileNames[fileIndex];
				PAGE.oPreloadedImages[i] = new Image();
				PAGE.oPreloadedImages[i].src = sRootPath + sFileName;
				//alert(images[i].src)
				i++;
			}
			//alert("Images Loaded: " + i)
		}
	}
}

/**
 * Configuration for the pre-loaded images
 */
PAGE.preloads = {
	images : [
		{
			root : "/img/charlesGallery/",
			fileNames : [
				"charlesGallery1.jpg",
				"charlesGallery10.jpg",
				"charlesGallery11.jpg",
				"charlesGallery12.jpg",
				"charlesGallery13.jpg",
				"charlesGallery14.jpg",
				"charlesGallery15.jpg",
				"charlesGallery16.jpg",
				"charlesGallery17.jpg",
				"charlesGallery18.jpg",
				"charlesGallery19.jpg",
				"charlesGallery2.jpg",
				"charlesGallery20.jpg",
				"charlesGallery21.jpg",
				"charlesGallery3.jpg",
				"charlesGallery4.jpg",
				"charlesGallery5.jpg",
				"charlesGallery6.jpg",
				"charlesGallery7.jpg",
				"charlesGallery8.jpg",
				"charlesGallery9.jpg",
				"thumbnailCharlesGallery1.jpg",
				"thumbnailCharlesGallery10.jpg",
				"thumbnailCharlesGallery11.jpg",
				"thumbnailCharlesGallery12.jpg",
				"thumbnailCharlesGallery13.jpg",
				"thumbnailCharlesGallery14.jpg",
				"thumbnailCharlesGallery16.jpg",
				"thumbnailCharlesGallery17.jpg",
				"thumbnailCharlesGallery18.jpg",
				"thumbnailCharlesGallery19.jpg",
				"thumbnailCharlesGallery2.jpg",
				"thumbnailCharlesGallery20.jpg",
				"thumbnailCharlesGallery21.jpg",
				"thumbnailCharlesGallery3.jpg",
				"thumbnailCharlesGallery4.jpg",
				"thumbnailCharlesGallery5.jpg",
				"thumbnailCharlesGallery6.jpg",
				"thumbnailCharlesGallery7.jpg",
				"thumbnailCharlesGallery8.jpg",
				"thumbnailCharlesGallery9.jpg",
				"ThumbnailCharlesPortrait3.jpg"
			]
	},
	{	root : "/img/studioGallery/",
		fileNames : [
			"studioGallery1.jpg",
			"studioGallery10.jpg",
			"studioGallery11.jpg",
			"studioGallery12.jpg",
			"studioGallery13.jpg",
			"studioGallery14.jpg",
			"studioGallery2.jpg",
			"studioGallery3.jpg",
			"studioGallery4.jpg",
			"studioGallery5.jpg",
			"studioGallery6.jpg",
			"studioGallery7.jpg",
			"studioGallery8.jpg",
			"studioGallery9.jpg",
			"thumbnailCharlesGallery12.jpg",
			"thumbnailCharlesGallery13.jpg",
			"thumbnailCharlesGallery14.jpg",
			"thumbnailStudioGallery1.jpg",
			"thumbnailStudioGallery10.jpg",
			"thumbnailStudioGallery11.jpg",
			"thumbnailStudioGallery12.jpg",
			"thumbnailStudioGallery13.jpg",
			"thumbnailStudioGallery14.jpg",
			"thumbnailStudioGallery16.jpg",
			"thumbnailStudioGallery2.jpg",
			"thumbnailStudioGallery3.jpg",
			"thumbnailStudioGallery4.jpg",
			"thumbnailStudioGallery5.jpg",
			"thumbnailStudioGallery6.jpg",
			"thumbnailStudioGallery7.jpg",
			"thumbnailStudioGallery8.jpg",
			"thumbnailStudioGallery9.jpg"
		]
	}

	]

}

YAHOO.util.Event.addListener(window, "load", PAGE.preloadImages);

// Initialize and render the Page when it is available in the DOM
YAHOO.util.Event.onDOMReady(PAGE.init);