/**
 *    Copyright (c) 2009-2010, As Is Software, dba Media Lab Inc.
 *    http://www.medialab.com
 */

//			Shadowbox.loadSkin('classic', '../jsclasses/sg_gallery_plugins/bigbox/shadowbox/skin'); // use the "classic" skin
//			Shadowbox.loadLanguage('en', 'http://michaeljackson.googlecode.com/svn/trunk/shadowbox/src/lang'); // use the English language
//			Shadowbox.loadPlayer(['img'], 'http://michaeljackson.googlecode.com/svn/trunk/shadowbox/src/player'); // use img and qt players

var com;
if(!com) { com = {}; } else if(typeof(com) != "object") { throw new Error("can't initialize...com is not an object."); }
if(!com.medialab) { com.medialab = {}; } else if(typeof(com.medialab) != "object") { throw new Error("can't initialize...com.medialab is not an object."); }
if(!com.medialab.sg) { com.medialab.sg = {}; }
if (!com.medialab.sg.gallery1) { com.medialab.sg.gallery1 = {};}

com.medialab.sg.gallery1.bigboxShadowbox = function(thumbSheetXMLIn, docentIn){
	var that = this;
	var debug = false;
	var sgalert = function(msg){
		if (debug) {
			alert(msg);
		}
	};
	var docent = docentIn;
	var shadowBoxGallery = null;
	var useAllViews = true;
	var titleMetaField = "";
	var showControls = true;	
	
	//alert(docentIn);
	var xml = thumbSheetXMLIn;
	
	function init(){
		docent.sgconsole("Bigbox shadowbox Init()");
		showControls = docent.getBigboxOption('showcontrols');
		titleMetaField = docent.getBigboxOption('titlemetafield');
		
		shadowBoxGallery = makeShadowboxGallery();
		Shadowbox.init({
			skipSetup: true,
			displayNav:showControls
		});
	}
	
	function makeShadowboxGallery(mode, curExhibit){
		var gal = new Array();
		if (!curExhibit) { curExhibit=0; }
		if (!mode) { mode = 'exhibit'; }
		
		if (mode == 'exhibit') {
			$ml('exhibit', xml).each(function(n){
				var myUrl = $ml('views > view > bigbox > url', this).eq(0).text();
				//console.log('bigbox url for gallery: '+myUrl);
				if (!myUrl || myUrl == "") {
					myUrl = $ml('views > view > picturebox > url', this).eq(0).text();
				}
				if (myUrl && myUrl != "") {
					var myGalEntry = makeShadowboxEntry(myUrl);
					addMetadata($ml('views view:eq(0)',this), myGalEntry);
					gal.push(myGalEntry);
				}
			})
		}
		else {
			$ml('exhibit:eq('+curExhibit+') view', xml).each(function(n){
				var myUrl = $ml('bigbox > url', this).text();
				if (!myUrl || myUrl == "") {
					myUrl = $ml('picturebox > url', this).text();
				}
				if (myUrl && myUrl != "") {
					var myGalEntry = makeShadowboxEntry(myUrl);
					addMetadata(this, myGalEntry);
					gal.push(myGalEntry);
				}
			})
		}
		return gal;
	}
	
	function addMetadata(provider,entry){
		if(typeof(titleMetaField)!='undefined' && titleMetaField != null && titleMetaField != "") {
			var metaVal = $ml('metadataentries metadata[name="'+titleMetaField+'"]',provider).text();
			
			if (typeof metaVal != 'undefined') {
				docent.sgconsole('metaval:'+metaVal);
				entry.title = metaVal;
			}
			
		}
	}

	function makeShadowboxEntry(url) {
		return {player: 'img', content: url};
	}

	this.openByURL = function (url) {
		// open a welcome message
		docent.sgconsole("open shadowbox with " + url);
		Shadowbox.open([
			{
				player: 'img',
//				title: 'Welcome',
				content: url 
				
			}
		]);		
	}
	
	this.openByView = function(mode, exhibitnum, viewnum) {
		docent.sgconsole("bigbox: openByView trying to start " + exhibitnum + " " + viewnum);
		//shadowBoxGallery = makeShadowboxGallery(mode, exhibitnum);
		
		var current = exhibitnum;
		if (mode == 'view') {
			current = viewnum;
		}
		if (current == 0) {
			docent.sgconsole(shadowBoxGallery[0].content);
			Shadowbox.open(shadowBoxGallery);
		}
		else {
			Shadowbox.open(shadowBoxGallery, current);
		}
		docent.sgconsole("shadowbox current B " + current);
	}
	//Shadowbox.loadSkin('classic', '../jsclasses/sg_gallery_plugins/bigbox/shadowbox/skin');
	init();
}