
/* 
BBC Scotland Robert Burns Site 2008
Glow/JS Code By Cris Walsh
Further Info: http://www.bbc.co.uk/glow/
*/


// create glow object
var glow;
// load an instance of glow
gloader.load(["glow", "1", "glow.dom","glow.events","glow.net","glow.widgets.Panel","glow.anim","glow.tweens"], {
	// if load successful, set var glowLocal to the current loaded instance
	onLoad: function(glowLocal) {
		glowLocal.ready(function() {
			// now set the current loaded instance to the var "glow"
			glow = glowLocal;
			// glow is now ready to use
			// console.log("glow ready");
			Site.EnhanceSite();
			Site.pageOptions();
		});
	}
});

/* ------------------------------------------------------------------------ */
/* -------------------->>>   G L O B A L  O B J E C T   <<<---------------- */
/* ------------------------------------------------------------------------ */
var Site = {
/* ------------------------------------------------------------------------ */
/* --------------------->>>   E N H A N C E  S I T E   <<<----------------- */
/* ------------------------------------------------------------------------ */
	EnhanceSite: function(){
		// create rounded corners certain divs
		Site.Add.NiftyCorners ();
		// console.log(navigator.appName);
		
	},
/* ------------------------------------------------------------------------ */
/* ---------------------->>> P A G E    O P T I O N S  <<<----------------- */
/* ------------------------------------------------------------------------ */
	pageOptions: function(){
		// set the var "classname" to the pages body class
		var classname = glow.dom.get('body').attr('id');
		// run a conditional statement on the var "classname" 
		switch(classname)
		{
			case 'home':
				//console.log("id=\"home\"");
				// load default homepage promo
				 Site.Add.InitalHomepagePromo ();
				// create homepage promo links
				Site.Add.HomepagePromoEvents();
				break;
			case 'listings':
				// console.log("id=\"listings\"");
				// init listings funtionality
				// Site.Listings.Init();
				break;
			case 'results':
				// console.log("results page");
				break;
			case 'burnsnight':
				// console.log("burnsnight page loaded");
				break;
			case 'biography':
				// console.log("biography page loaded");
				break;
			default:
				break;
		}
	},
		
/* ------------------------------------------------------------------------ */
/* --------------------------->>>   A D D     <<<-------------------------- */
/* ------------------------------------------------------------------------ */
	Add: {
/* ------------------------------------------------------------------------ */
/* Function:Site.Add.NiftyCorners(); */
/* ------------------------------------------------------------------------ */	
		NiftyCorners: function(){
			// console.log("NiftyCorners");
			Nifty("div.white-inner", "medium");
			Nifty("li.lifirst", "bl medium");
			Nifty("li.lifourth", "br medium");
			Nifty("#panel", "medium");
			Nifty("#az-tab-btn", "medium transparent");
			Nifty("#year-tab-btn", "medium transparent");
			Nifty("#reader-tab-btn", "medium transparent");
			Nifty("#theme-tab-btn", "medium transparent");
			Nifty("li.first,li.second,li.third,li.complete", "large");
			Nifty("ul.listings", "medium");
			Nifty("#secondary-content", "bl br medium");
		}, 
/* ------------------------------------------------------------------------ */
/* Function:Site.Add.InitalHomepagePromo(); */
/* ------------------------------------------------------------------------ */	
		InitalHomepagePromo: function(){
			
			var request = glow.net.get("/robertburns/inc/largepromo1.sssi", {
			onLoad: function(response) {Site.clearObject("#largePromoHolder"); 
				// console.log("InitalHomepagePromo loaded");
				glow.dom.get('#largePromoHolder').append(response.text());
			},
			onError: function(response) {alert("Error getting file: " + response.statusText());}
			});
		},
/* ------------------------------------------------------------------------ */
/* Function:Site.Add.HomepagePromoEvents(); */
/* ------------------------------------------------------------------------ */	
		HomepagePromoEvents: function(){
			// console.log ("HomepagePromoEvents invoked")
			var $ = glow.dom.get, homepagePromoLinks = $('#promo-carousel li a');
			homepagePromoLinks.each(function(){
				glow.events.addListener(this, "click", function(e){
					e.preventDefault();
					homepagePromoLinks.removeClass("selected");
					$(this).addClass("selected");
					Site.clearObject("#largePromoHolder");
					// Site.FadeOutHomePagePromo($(this));
					Site.loadLargePromo ($(this));
				});
			})
		}
/* !IMPORTANT! - close Add namespace */
	},

	
	
/* ------------------------------------------------------------------------ */
/* Function:Site.loadLargePromo(); */
/* ------------------------------------------------------------------------ */	
		loadLargePromo: function(currentObject){
			
			var btnClicked = currentObject.parent().attr('id');
			// console.log("loading " + btnClicked);
			var request = glow.net.get("/robertburns/inc/large"+btnClicked+".sssi", {
			onLoad: function(response) {
			glow.dom.get('#largePromoHolder').append(response.text());
			// console.log(btnClicked + " loaded");
			// Site.FadeInHomePagePromo();
			},
			onError: function(response) {alert("Error getting file: " + response.statusText());}
			});
		},
//* ------------------------------------------------------------------------ */
/* Function:Site.FadeInHomePagePromo(); */
/* ------------------------------------------------------------------------ */
	FadeInHomePagePromo: function(){
		// animate an elements height and opacity to 0 from current values over 1 second
		var myAnim = glow.anim.css("#largePromoHolder", .5, {"opacity" : {to:1}}).start();
		glow.events.addListener(myAnim, "complete", function(){
		// console.log("fadein animation complete");
		});
	},
//* ------------------------------------------------------------------------ */
/* Function:Site.FadeOutHomePagePromo(); */
/* ------------------------------------------------------------------------ */
	FadeOutHomePagePromo: function(currentObject){
		// fade out promo
		var myAnim = glow.anim.css("#largePromoHolder", .5, {"opacity" : {to:0}}).start();
			// listen for the animation completing..
			glow.events.addListener(myAnim, "complete", function(){
			// console.log("fadeout animation complete");
			// clear the promo holder
			Site.clearObject("#largePromoHolder");
			Site.loadLargePromo (currentObject);
		});
	},
/* ------------------------------------------------------------------------ */
/* Function:fadeIn() */
/* ------------------------------------------------------------------------ */
		fadeIn: function(currentObject){
			 // console.log("fadeIn");
			var myAnim = glow.anim.css(currentObject, .5, {"opacity" : {to:1}}).start();
				glow.events.addListener(myAnim, "complete", function(){
				// console.log("fadein animation complete");
				});
		},
/* ------------------------------------------------------------------------ */
/* Function:fadeOut() */
/* ------------------------------------------------------------------------ */
		fadeOut: function(currentObject){
			 // console.log("fadeOut");
			var myAnim = glow.anim.css(currentObject, .5, {"opacity" : {to:0}}).start();
				glow.events.addListener(myAnim, "complete", function(){
				// console.log("fadeout animation complete");
				});
		},
/* ------------------------------------------------------------------------ */
/* Function:Site.clearObject(); */
/* ------------------------------------------------------------------------ */	
	clearObject: function(currentObject){
			// console.log("children of " + currentObject + " removed from DOM");
			var $ = glow.dom.get, object = $(currentObject).children().remove();
	}

/* !IMPORTANT! - close Global namespace */
}
