if(window.jQuery){ (function($){ $(function(){

	
	//store reference to media-explorer display element
	$meDisplay=$($('.me-display')[0]);
	$meRelated=$($('.me-related')[0]);

	//copy gallery template and then remove from page
	//this html fragment could be obtained via an ajax request instead?
	if($.meGalleryTemplate==null){
		$.meGalleryTemplate=$('#me-gallery-template').html();
		$('#me-gallery-template').remove();
	}

	//set media-explorer display options
	var displayOptions={
		baseURL: ajaxMediaExplorerPath,
		ajaxURL: ajaxMediaXMLPath,
		lightboxLabel: 'Enlarge Image'
		
	}


	//bind media-explorer selector selectEvent to display update
	$('.me-selector').bind('selectEvent', function(e, data) {
		$meDisplay.mediaexplorer_display($(data),displayOptions);		
	});

	$meDisplay.bind('onDataEvent', function(e, jData) {
		
		//request media info HTML fragment
		var related_content_id = $($(jData).find("related_content_id")[0]).text();
		var type = $($(jData).find("type")[0]).text();
		var id = $($(jData).find("id")[0]).text();

		$.ajax({
			url: ajaxMediaInfoHTMLPath,
			processData: false,
			data: 'type=' +type +'&id=' +id,
			dataType: "text",
			error: 		function(data){	onInfoDataError(data);	},
			success: 	function(data){	onInfoDataSuccess(data);	}
		});
		
		//request related content HTML fragment
		var relatedURL=(related_content_id) ? ajaxRelatedHTMLPath : ajaxNoRelatedHTMLPath;	
		$.ajax({
			url: relatedURL,
			processData: false,
			data: 'id=' +related_content_id,
			dataType: "text",
			error: 		function(data){	onReleatedDataError(data);	},
			success: 	function(data){	onReleatedDataSuccess(data);	}
		});
	});

	var onReleatedDataError = function(data){}
	var onReleatedDataSuccess = function(data){		
		$('.me-related').replaceWith(data);
	}
	var onInfoDataError = function(data){}
	var onInfoDataSuccess = function(data){
		$('.me-info').replaceWith(data);
	}	

	$meDisplay.mediaexplorer_display(null,displayOptions);




	/*
		create mediaexplorer_selector (s)
		must be called after the mediaexplorer_display()
		mediaexplorer_selector triggers selectEvent()
	*/
	var selectorOptions={	
		baseURL: ajaxMediaExplorerPath,
		ajaxURL: ajaxSetHTMLPath		
	}
	$('.me-selector').mediaexplorer_selector(selectorOptions);
		
	//Remove accordin ability for those marked as noaccord
	$('.me-navigation dt.noaccord').bind('click',function(e){
		e.preventDefault();
		document.location=$(this).find('a').attr('href');
		return false;
	});

		
	//activate accordion LHN
	$('.me-navigation').accordion({
		fillSpace: false,
		alwaysOpen:true,
		autoheight:false,
		clearStyle:true,
		navigation:true,
		header: "dt"
	});


	try{
		if(startAccordCollapsed && !(/\?/.test(location.href))){
			$(".me-navigation").removeClass("selected");
			$(".me-navigation dt").removeClass("selected");	
		}
		else{
			$('.me-navigation').activate('.selected');
		}
	}
	catch(e){
		$('.me-navigation').activate('.selected');
	}

	$('.me-theme UL.items LI').bind('click',function(e){
		$($(this).find('A')[0]).trigger('click');
	}).hover(function(){
		$(this).addClass('hover');
	},function(){
		$(this).removeClass('hover');
	});


	//on click on left hand nav link request set data and update me-selector
	$('.me-themes UL LI A').bind('click',function(e){
		e.preventDefault();	
		e.stopPropagation();
		var h=$(e.target).attr('href');
		var set_id=$.getURLParameter(h,'set');				
		$.ajax({
			url: ajaxSetHTMLPath,
			processData: false,
			data: 'set=' +set_id,
			dataType: "text",
			error: 		function(data){	onSetDataError(data);	},
			success: 	function(data){	onSetDataSuccess(data);	}
		});
	});
	var onSetDataError = function(data){}
	var onSetDataSuccess = function(data){		
		$('.me-selector').replaceWith(data);		
		$('.me-selector').bind('selectEvent', function(e, data) {
			$meDisplay.mediaexplorer_display($(data),displayOptions);		
		});		
		$('.me-selector').mediaexplorer_selector(selectorOptions);
	}
	
	
	


});









		jQuery.getNatureExplorerURLParameters = function(url) {
			var parts=url.split(splitOn + "/");
			var parts=parts.length>1?parts[1]:parts[0];
			var parts=parts.split("/");
			
			var data=new Object();
			for(var i=0;i<parts.length;i++){
				switch(i){
					case 0:
						data.theme=parts[i];
						break;
					case 1:
						data.set=parts[1];
						break;
					case 2:
						data.type=parts[2];
						break;
					case 3:
						data.id=parts[3];
						break;						
					default:
						break;
				}
			}
			return data;
		}








		jQuery.getURLParameter = function(url,name) {
			name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
			var regexS = "[\\?&]"+name+"=([^&#]*)";
			var regex = new RegExp( regexS );
			var results = regex.exec( url );
			if( results == null )
				return "";
			else
				return results[1];
		};

		//scroll to an element
		jQuery.focusOn = function($target){
			var offset = $target.offset();
			scrollTo(0,offset.top-20);
		}

		//embed an emp instance into target element
		jQuery.writeEMP = function(domID,playlistXML,width,height){
			$('#' +domID).html('<div id="emp-container"></div>');
			var emp = new bbc.Emp();
			emp.setWidth(width);
			emp.setHeight(height);
			emp.setDomId('emp-container');
			emp.setPlaylist(playlistXML);
			emp.write();
		}






		})(jQuery.noConflict()) }

