/**
 * Media Gallery controls
 * depends on jquery.colorbox 1.3.6
 */
mediagallery = {
		
	instances	: [],
	defaults	: {
		grid	: {
			rows: '4', 
			cols: '4'
		},
		collection	: {
			model	: 'defaultInstance', 
			id		: 0
		},
		colorbox: {
			maxWidth: '960', 
			maxHeight: '960'
		}
	},
	/**
	 * 
	 */
	init: function(container) {
		$(container).each(function(index, el){
			/* 
			 * create instance 
			 */
			var instance_index = mediagallery.instances.length;
			var instance = $(this);
			/* 
			 * get settings from HTML
			 */
			instance.settings = {};
			for (var n in mediagallery.defaults){
				var html_config = $(instance.find('.settings .'+n));
				instance.settings[n] = {};
				for (var k in mediagallery.defaults[n]){
					var config_el = $(html_config).find('.'+k);
					if (config_el.length > 0) {
//						console.log(n+'.'+k+': true');
						instance.settings[n][k] = $(config_el[0]).html();
					}else{
//						console.log(n+'.'+k+': false');
						instance.settings[n][k] = mediagallery.defaults[n][k];
					}
				}
			}
			/* 
			 * keep track of things by creating a traceable instance
			 */
			if(!instance.settings['collection']){
				instance.settings['collection'] = {};
			}
			if(!instance.settings['collection']['model'] || !instance.settings['collection']['id']){
				// `model` and `id` MUST be defined in HTML if either is not passed, defaults will overwrite the counter-part
				instance.settings['collection']['model'] = mediagallery.defaults.collection.model;
				instance.settings['collection']['id'] = mediagallery.defaults.collection.id++;
			}
			//console.log(instance.settings);
			mediagallery.instances[instance.settings.collection.model+'_'+instance.settings.collection.id] = instance;
			instance.instance_index = instance_index;
			// add items
			instance.items = [];
			instance.type = instance.hasClass('image') ? 'image' : (instance.hasClass('video') ? 'video' : (instance.hasClass('url') ? 'url' : null));
			var rel = 'mediagallery_'+instance_index;
/*			instance.find('a.mg_item').each(function(index, el){
				var item = $(el);
				item.attr('rel', rel);
				instance.items.push({
					src: item.attr('href'),
					img_thumb: item.find('.mg_thumb')[0],
					img_large: ( (item.find('.mg_large')[0]) ? item.find('.mg_large')[0] : null ),
					img_src_link: ( (item.find('.mg_src_link')[0]) ? item.find('.mg_src_link')[0] : '' ),
					title: ( (item.find('.mg_title')[0]) ? $(item.find('.mg_title')[0]).html() : item.attr('href') ),
					description: ( (item.find('.mg_description')[0]) ? $(item.find('.mg_description')[0]).html() : '' )
				});
//				console.log(instance.items);
			});
*/			$(container+' a.mg_item').colorbox({
				rel: rel, 
				title: function(){
					var item = $(this);
				    return '<div style="padding: 3px 5px;">'
				    +( (item.find('.mg_title')[0]) ? '<b>'+$(item.find('.mg_title')[0]).html()+'</b>' : '' )
// uncomment below to enable download img-source (not sized proxy-image)
//				    +( (item.find('.mg_src_link_href')[0]) ? '&nbsp;&nbsp;<a class="small-txt" href="'+$(item.find('.mg_src_link_href')[0]).html()+'" target="_blank">'+( item.find('.mg_src_link_text')[0] ? $(item.find('.mg_src_link_text')[0]).html() : 'Open in new window' )+'</a>' : '' )
				    +( (item.find('.mg_description')[0]) ? '<br />'+$(item.find('.mg_description')[0]).html() : '' )
				    +'</div>';
				},
				maxWidth: instance.settings.colorbox.maxWidth, 
				maxHeight: instance.settings.colorbox.maxHeight,
				// #zoomnav conflicts with colorbox > hide it
				onOpen: function(){$('#zoomnav').css('visibility','hidden')}, 
				onClosed: function(){$('#zoomnav').css('visibility','visible')}
			});
		});
	},
	autoplay: function(id){
		console.log(id);
	}
}
$(document).ready( function(){
	if($.fn.colorbox){
		mediagallery.init('.gallerythumbs');
//	}else{
//		console.log('no colorbox')
	}
});

