
// build media module methods based on page level

fcMedia = {
	
	// ==============================================
	mmObjsPhotos:new Array(),
	mmObjsPhotosCats:'',
	mmObjsAAGImgID:'AccommodationAtAGlancePhotoContainer', // the id for the aag image to rotate
	mmObjsMediaImgID:'MediaPhotoContainer', // media image id to rotate
	mmObjsAAGImgNum:0, // the currently displayed image in the aag section
	mmAAGSlideSpeed:3000,
	mmMainSlideSpeed:3000,
	// ==============================================
	
	mmObjsVideos:new Array(),
	mmObjsMediaVidID:'MediaVideoContainer', // container for video
	mmLocType:'',
	
	mmCurrentType:'',// stores the currently selected media type - image/video/tour
	
	init:function(locType) {
		if(!locType) { return false; }
		fcMedia.mmLocType = locType;
		
		fcMedia.populateImages();
		fcMedia.populateVideos();
		fcMedia.setInitialState(); // determines whether to show an image/video/360 initially
		
	},

	setInitialState:function(){
		fcMedia.mmCurrentType = 'photo';
	},


	populateVideos:function() 
	{
	
	   var elem = document.getElementById('fcMediaVidLinks');
	   if(elem) 
	   {
	      elem.style.display = 'none';
	      fcMedia.mmObjsVideos = elem.getElementsByTagName('a');
			
	      var outputHTML = '';
	      var newLayoutOutputHTML = '';
	      if(document.getElementById('fcMediaLinks')) 
	      {
	         if(fcMedia.mmObjsVideos.length > 0) 
	         {
	            // Accommodation Details Page within the Booking Flow
	            
	            if (document.getElementById('newAccommodationLayout'))
	            {
	               newLayoutOutputHTML += '<h3>Accommodation video</h3>';
	               newLayoutOutputHTML += '<ul>';
	               
		       for(var i=0,x=fcMedia.mmObjsVideos.length;i<x;i++) 
		       {
		          newLayoutOutputHTML += '<li><a href="' + fcMedia.mmObjsVideos[i].href + '" onclick="popMedia(\'' + fcMedia.mmObjsVideos[i].href + '\'); return false;"><strong>Play video</strong></a></li>'; 
		       }
		    
		       newLayoutOutputHTML += '</ul>';
		       document.getElementById('newLayoutVidLink').style.display = 'block';
		       document.getElementById('newLayoutVidLink').innerHTML = newLayoutOutputHTML;
	            
	            }
	            
	            // All other occurances
	            
	            else
	            {
	               outputHTML += '<h3>' + (fcMedia.mmObjsVideos.length > 1 ? 'Videos ' +  ' (' + fcMedia.mmObjsVideos.length + ')' : 'Video') + '</h3>';
		       outputHTML += '<ul>';
		    
		       for(var i=0,x=fcMedia.mmObjsVideos.length;i<x;i++) 
		       {
		          outputHTML += '<li><a href="' + fcMedia.mmObjsVideos[i].href + '" onclick="fcMedia.switchType(\'video\', this);return false;"><strong>Play video</strong></a></li>'; 
		       }
		    
		       outputHTML += '</ul>';
		       document.getElementById('fcMediaLinks').innerHTML += outputHTML;
		    }   
		 }
	      }   
	   } else { return false; }
	},


	switchType:function(catType, elem, params) {

		if(!document.getElementById('fcMediaDisplay')) { return false; }
		
		switch(catType) {
			
			case 'video':
				if(fcMedia.mmCurrentType == 'video' || !document.getElementById(fcMedia.mmObjsMediaVidID)) { break; }
				// hide other containers
				if(fcMedia.mmCurrentType == 'photo' && document.getElementById(fcMedia.mmObjsMediaImgID)) { 
					fcMedia.stopSlideShow();
					document.getElementById(fcMedia.mmObjsMediaImgID).style.display = 'none'; 
				}
 
				document.getElementById('fcMediaDisplay').className = 'typeVideo';
				
				var outputHTML = '';
				outputHTML += '<object id="Player" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" height="370" width="410">';
				outputHTML += '	<param name="URL" value="' + fcMedia.mmObjsVideos[0].href + '">';
				outputHTML += '	<param name="autoStart" value="true">';
				outputHTML += '	<param name="uimode" value="mini">';
				outputHTML += '	<embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="' + fcMedia.mmObjsVideos[0].href + '" showcontrols="1" height="390" width="410">';
				outputHTML += '</object>';
				 
				document.getElementById(fcMedia.mmObjsMediaVidID).style.display = 'block';
				document.getElementById(fcMedia.mmObjsMediaVidID).innerHTML = outputHTML;
				
				fcMedia.mmCurrentType = catType;
			
			break;
			
			case 'photo':
			
				if(fcMedia.mmCurrentType == 'photo' || !document.getElementById(fcMedia.mmObjsMediaImgID)) { 
					if(elem && params) { fcMedia.switchCat(elem, params); }
					break; 
				}
				// hide other containers
				if(fcMedia.mmCurrentType == 'video' && document.getElementById(fcMedia.mmObjsMediaVidID)) { 
					document.getElementById(fcMedia.mmObjsMediaVidID).innerHTML = '&nbsp;';
					document.getElementById(fcMedia.mmObjsMediaVidID).style.display = 'none'; 
				}
				
				document.getElementById('fcMediaDisplay').className = '';
				document.getElementById(fcMedia.mmObjsMediaImgID).style.display = 'block';

				if(elem && params) { fcMedia.switchCat(elem, params); }
				fcMedia.mmCurrentType = catType;
			break;
			
			// new Booking Flow Accommodation Layout 
			case 'slide':
			
		           if(elem) 
		           {
			      var elemArr = elem.parentNode.parentNode.getElementsByTagName('li');
			      for(var i=0, x=elemArr.length; i<x; i++) 
			      {
			         elemArr[i].className = '';
			      }
			      elem.parentNode.className = 'selected';
			      
			      fcMedia.playSlideShow();
			      
		           }			     	
			break; 
		}
		
		return false;
	
	},


	populateImages:function() {
		
		var elem = document.getElementById('fcImageThumbs');
		if(elem) {
			
			elem.style.display = 'none';
			
			var inc = 0;
			var cats = '';
			for(var i=0, x=elem.getElementsByTagName('a').length; i < x; i++) {
				
				if(elem.getElementsByTagName('a')[i].getElementsByTagName('img').length > 0) {
					
					fcMedia.mmObjsPhotos[inc] = new Array();
					
					// create the photo objects
					fcMedia.mmObjsPhotos[inc] = { 
						caption:elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].title,
						tags:elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].className.split('imgCatName')[1]
					};
					
					fcMedia.mmObjsPhotos[inc].url = new Image();
					fcMedia.mmObjsPhotos[inc].url.src = elem.getElementsByTagName('a')[i].href;

					fcMedia.mmObjsPhotos[inc].thumbnail = new Image();
					fcMedia.mmObjsPhotos[inc].thumbnail.src = elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].src;
					
					// store the unique image categories
					if(i>0) { fcMedia.mmObjsPhotosCats += '::'; } // add delimiter
					fcMedia.mmObjsPhotosCats += fcMedia.mmObjsPhotos[inc].tags;
					
					inc++;
				}
			}
			
			fcMedia.mmObjsPhotosCats = fcMedia.mmObjsPhotosCats.split('::');
			
			var uniqueCats = new Object();
			
			for(var i=0, x=fcMedia.mmObjsPhotosCats.length; i<x; i++) {
				if(!uniqueCats[fcMedia.mmObjsPhotosCats[i]]) {
					uniqueCats[fcMedia.mmObjsPhotosCats[i]] = 1;
				} else {
					uniqueCats[fcMedia.mmObjsPhotosCats[i]] = (parseInt(uniqueCats[fcMedia.mmObjsPhotosCats[i]], 10) + 1);
				}
			}
			
			fcMedia.mmObjsPhotosCats = null;
			fcMedia.mmObjsPhotosCats = uniqueCats;
			
			// update links
			var outputHTML = '';
			
			if(document.getElementById('fcMediaLinks')) {
				if(fcMedia.mmObjsPhotos.length > 0) {

					outputHTML += '<h3>Photos (' + fcMedia.mmObjsPhotos.length + ')</h3>';
					outputHTML += '<ul>';
					outputHTML += '<li class="selected"><a href="#" onclick="fcMedia.switchType(\'photo\',this,\'all\');return false;"><strong>All photos</strong> (' + fcMedia.mmObjsPhotos.length + ')</a></li>';
					
					for(var key in fcMedia.mmObjsPhotosCats) {
						// don't show the category if it has no name...
						//if(key != '') { outputHTML += '<li><a href="#" onclick="fcMedia.switchCat(this, \'' + key + '\');return false;"><strong>' + key + '</strong> (' + fcMedia.mmObjsPhotosCats[key] + ')</a></li>'; }
						if(key != '') { outputHTML += '<li><a href="#" onclick="fcMedia.switchType(\'photo\',this,\'' + key + '\');return false;"><strong>' + key + '</strong> (' + fcMedia.mmObjsPhotosCats[key] + ')</a></li>'; }
					}
					
					// new Booking Flow Accommodation Layout 
				        if (document.getElementById('newAccommodationLayout'))
				        {
				           outputHTML += '<li id="newLayoutSlideLink"><a href="#" onclick="fcMedia.switchType(\'slide\',this,\'slide\');return false;" id="MediaSlideshowLink" class="arrow-link">Play slideshow</a></li>';
				        }
				        
					outputHTML += '</ul>';
				}
				document.getElementById('fcMediaLinks').innerHTML += outputHTML;
				
				fcMedia.unitCreateSlideShowHTML();
				
			}
			
			
			
			
		} else { return false; }
	},
	
	

	
	
	
	
	
	switchCat:function(elem, imgType) {
		imgType = (!imgType ? 'all' : imgType);
		
		if(elem) {
			var elemArr = elem.parentNode.parentNode.getElementsByTagName('li');
			for(var i=0, x=elemArr.length; i<x; i++) {
				elemArr[i].className = '';
			}
			elem.parentNode.className = 'selected';
		}
		
		// stop slideshow if enabled
		fcMedia.stopSlideShow();
		
		// (re)build slideshow
		fcMedia.unitCreateSlideShowHTML(imgType);
	},



	playSlideShow:function() {
	
		if(fcMedia.mmCurrentType != 'photo') { fcMedia.switchType('photo'); }
	

		var elem = document.getElementById('MediaThumbnailsList');
		if(elem && (elem.getElementsByTagName('li').length > 1)) { fcRotateSlide = setInterval('fcMedia.playSlideShowNext()', fcMedia.mmMainSlideSpeed); }
	},
	
	stopSlideShow:function() {
		if(typeof fcRotateSlide!="undefined") {
			clearInterval(fcRotateSlide);
			fcRotateSlide = null;
		}
	},
	
	playSlideShowNext:function() {
		var elemArr = document.getElementById('MediaThumbnailsList').getElementsByTagName('li');
		var elemSelected = '';
		
		for(var i=0, x=elemArr.length; i<x; i++) {
			if(elemArr[i].className == 'selected') {
				elemArr[i].className = '';
				if(elemArr[(i+1)]) { 
					elemArr[(i+1)].className = 'selected';
					elemSelected = elemArr[(i+1)];
				} else { 
					elemArr[0].className = 'selected'; 
					elemSelected = elemArr[0];
				}
				break;
			}
		}
		fcMedia.switchMediaImage();
	},


	switchMediaThumb:function(elem) {
		var elemThumb = document.getElementById('MediaThumbnailsList');
		var elemArr = elemThumb.getElementsByTagName('li');
		for(i=0, x=elemArr.length; i<x; i++) {
			elemArr[i].className = '';
		}
		elem.className = 'selected';
		fcMedia.switchMediaImage();
		fcMedia.stopSlideShow();
	},

	switchMediaImage:function() {
		var elemThumb = document.getElementById('MediaThumbnailsList');
		var imgID = 0;
		
		if(elemThumb) {
			var elemArr = elemThumb.getElementsByTagName('li');
			for(i=0, x=elemArr.length; i<x; i++) {
				if(elemArr[i].className == 'selected') {
					imgID = elemArr[i].id.split('thumbImg')[1];
				}
			}
		}
					
		var imgElem = document.getElementById(fcMedia.mmObjsMediaImgID).getElementsByTagName('img')[0];
		if(imgElem) {
			imgElem.src = fcMedia.mmObjsPhotos[imgID].url.src;
			imgElem.title = fcMedia.mmObjsPhotos[imgID].caption;
			imgElem.alt = fcMedia.mmObjsPhotos[imgID].caption;
		}
					
		var capElem = document.getElementById(fcMedia.mmObjsMediaImgID).getElementsByTagName('p')[0];
		if(capElem) { capElem.innerHTML = fcMedia.mmObjsPhotos[imgID].caption; }		
	},


	unitCreateSlideShowHTML:function(imgType) {
		
		if(fcMedia.mmObjsPhotos.length < 1) { return; }
		imgType = (!imgType ? 'all' : imgType);

		var outputHTML = '';
		outputHTML += '	<div id="MediaThumbnailsHeader">';
		outputHTML += '		<a href="#" onclick="fcMedia.playSlideShow(); return false" id="MediaSlideshowLink" class="arrow-link">View as a slideshow&nbsp;<span class="arrowPlaceholder">&nbsp;</span></a>';
		outputHTML += '		<h3 id="MediaThumbnailsHeaderText">' + (imgType == 'all' ? 'All photos<span class="unbold"> (' + fcMedia.mmObjsPhotos.length + ')</span>' : imgType + '<span class="unbold"> (' + fcMedia.mmObjsPhotosCats[imgType] + ')</span>' ) + '</h3>';
		outputHTML += '		<div class="clearer"></div>';
		outputHTML += '	</div>';
		outputHTML += '	<div id="MediaThumbnailsBody" class="columnFullPage">';
		outputHTML += '		<div id="mediaThumbnailsScrollLeft"><a href="#" title="Scroll left" onclick="return false" onmousedown="mediaThumbnailsScrollLeft(); return false" onmouseup="killScroll();" onmouseout="killScroll();"></a></div>';
		outputHTML += '			<div id="mediaThumbnailsCarouselWrapper">';
		outputHTML += '				<ul style="width: ' + (parseInt(fcMedia.mmObjsPhotos.length, 10) * 138)  + 'px;" id="MediaThumbnailsList">';
		var inc = 0;
		for(var i=0, x=fcMedia.mmObjsPhotos.length; i<x; i++) {
			if(imgType == 'all' || imgType == fcMedia.mmObjsPhotos[i].tags) {
				outputHTML += '<li onclick="fcMedia.switchMediaThumb(this);" id="thumbImg' + i + '" ' + (inc==0 ? ' class="selected" ' : '' ) + '><img src="' + fcMedia.mmObjsPhotos[i].thumbnail.src + '" alt="' + fcMedia.mmObjsPhotos[i].caption + '" title="' + fcMedia.mmObjsPhotos[i].caption + '"></li>';
				inc++;
			}
		}
		outputHTML += '				</ul>';
		outputHTML += '				<div class="clearer"></div>';
		outputHTML += '			</div>';
		outputHTML += '			<div id="mediaThumbnailsScrollRight"><a href="#" title="Scroll right" onclick="return false" onmousedown="mediaThumbnailsScrollRight(); return false" onmouseup="killScroll();" onmouseout="killScroll();"></a></div>        ';
		outputHTML += '		</div>';
		outputHTML += '	</div>';
		document.getElementById('MediaThumbnails').innerHTML = outputHTML;
		fcMedia.switchMediaImage();
	}

	

}


// Pop a video link on the new Booking Flow Accommodation page 
  function popMedia(id){
   window.open("/player/player.html?f=" +id,"_popMedia","width=427,height=408");
  }




fcAccom = {
	
	mmObjsPhotos:new Array(),
	mmObjsPhotosCats:'',
	mmObjsAAGImgID:'AccommodationAtAGlancePhotoContainer', // the id for the aag image to rotate
	mmObjsMediaImgID:'MediaPhotoContainer', // media image id to rotate
	mmObjsAAGImgNum:0, // the currently displayed image in the aag section
	mmAAGSlideSpeed:3000,
	mmMainSlideSpeed:3000,
	
	init:function() {
		
		fcMedia.init('unit');


	},
	
	unitRotateAAG:function() {
		if(fcAccom.mmObjsPhotos.length < 2) { return; } // don't rotate unless there are at least two pictures
		if(document.getElementById(fcAccom.mmObjsAAGImgID)) {
			fcRotateAAG = setInterval('fcAccom.unitRedrawRotateAAG()', fcAccom.mmAAGSlideSpeed);
			document.getElementById(fcAccom.mmObjsAAGImgID).onclick = function() { fcTab.passToSwitchTab();  }
		}
	},

	unitRedrawRotateAAG:function() {
	
		if(!fcRotateAAG) { return; }
		fcAccom.mmObjsAAGImgNum = (!fcAccom.mmObjsPhotos[(fcAccom.mmObjsAAGImgNum+1)] ? 0 : fcAccom.mmObjsAAGImgNum+1);

		var imgElem = document.getElementById(fcAccom.mmObjsAAGImgID).getElementsByTagName('img')[0];

		if(imgElem) {
			imgElem.src = fcAccom.mmObjsPhotos[fcAccom.mmObjsAAGImgNum].url.src;
			imgElem.title = fcAccom.mmObjsPhotos[fcAccom.mmObjsAAGImgNum].caption;
			imgElem.alt = fcAccom.mmObjsPhotos[fcAccom.mmObjsAAGImgNum].caption;
		}
		
		var capElem = document.getElementById(fcAccom.mmObjsAAGImgID).getElementsByTagName('p')[0];
		if(capElem) {
			capElem.innerHTML = fcAccom.mmObjsPhotos[fcAccom.mmObjsAAGImgNum].caption;
		}
	},

	unitMakeSlideShow:function() {
		
		var elem = document.getElementById('fcImageThumbs');
		if(elem) {
			
			elem.style.display = 'none';
			
			var inc = 0;
			var cats = '';
			for(var i=0, x=elem.getElementsByTagName('a').length; i < x; i++) {
				
				if(elem.getElementsByTagName('a')[i].getElementsByTagName('img').length > 0) {
					
					fcAccom.mmObjsPhotos[inc] = new Array();
					
					// create the photo objects
					fcAccom.mmObjsPhotos[inc] = { 
						caption:elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].title,
						tags:elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].className.split('imgCatName')[1]
					};
					
					fcAccom.mmObjsPhotos[inc].url = new Image();
					fcAccom.mmObjsPhotos[inc].url.src = elem.getElementsByTagName('a')[i].href;

					fcAccom.mmObjsPhotos[inc].thumbnail = new Image();
					fcAccom.mmObjsPhotos[inc].thumbnail.src = elem.getElementsByTagName('a')[i].getElementsByTagName('img')[0].src;
					
					// store the unique image categories
					if(i>0) { fcAccom.mmObjsPhotosCats += '::'; } // add delimiter
					fcAccom.mmObjsPhotosCats += fcAccom.mmObjsPhotos[inc].tags;
					
					inc++;
				}
			}
			
			fcAccom.mmObjsPhotosCats = fcAccom.mmObjsPhotosCats.split('::');
			
			var uniqueCats = new Object();
			
			for(var i=0, x=fcAccom.mmObjsPhotosCats.length; i<x; i++) {
				if(!uniqueCats[fcAccom.mmObjsPhotosCats[i]]) {
					uniqueCats[fcAccom.mmObjsPhotosCats[i]] = 1;
				} else {
					uniqueCats[fcAccom.mmObjsPhotosCats[i]] = (parseInt(uniqueCats[fcAccom.mmObjsPhotosCats[i]], 10) + 1);
				}
			}
			
			fcAccom.mmObjsPhotosCats = null;
			fcAccom.mmObjsPhotosCats = uniqueCats;
			
			// update links
			var outputHTML = '';
			if(document.getElementById('fcMediaLinks')) {
				if(fcAccom.mmObjsPhotos.length > 0) {

					outputHTML += '<h3>Photos (' + fcAccom.mmObjsPhotos.length + ')</h3>';
					outputHTML += '<ul>';
					outputHTML += '<li class="selected"><a href="#" onclick="fcAccom.switchCat(this, \'all\');return false;"><strong>All photos</strong> (' + fcAccom.mmObjsPhotos.length + ')</a></li>';
					
					for(var key in fcAccom.mmObjsPhotosCats) {
						// don't show the category if it has no name...
						if(key != '') { outputHTML += '<li><a href="#" onclick="fcAccom.switchCat(this, \'' + key + '\');return false;"><strong>' + key + '</strong> (' + fcAccom.mmObjsPhotosCats[key] + ')</a></li>'; }
					}
					
					outputHTML += '</ul>';
				}
				document.getElementById('fcMediaLinks').innerHTML += outputHTML;
				
				fcAccom.unitCreateSlideShowHTML();
				
			}
		}
	},
	
	switchCat:function(elem, imgType) {
		imgType = (!imgType ? 'all' : imgType);
		
		if(elem) {
			var elemArr = elem.parentNode.parentNode.getElementsByTagName('li');
			for(var i=0, x=elemArr.length; i<x; i++) {
				elemArr[i].className = '';
			}
			elem.parentNode.className = 'selected';
		}
		
		// stop slideshow if enabled
		fcAccom.stopSlideShow();
		
		// (re)build slideshow
		fcAccom.unitCreateSlideShowHTML(imgType);
	},
	
	
	playSlideShow:function() {
		var elem = document.getElementById('MediaThumbnailsList');
		if(elem && (elem.getElementsByTagName('li').length > 1)) { fcRotateSlide = setInterval('fcAccom.playSlideShowNext()', fcAccom.mmMainSlideSpeed); }
	},
	
	stopSlideShow:function() {
		if(typeof fcRotateSlide!="undefined") {
			clearInterval(fcRotateSlide);
			fcRotateSlide = null;
		}
	},
	
	playSlideShowNext:function() {
		var elemArr = document.getElementById('MediaThumbnailsList').getElementsByTagName('li');
		var elemSelected = '';
		
		for(var i=0, x=elemArr.length; i<x; i++) {
			if(elemArr[i].className == 'selected') {
				elemArr[i].className = '';
				if(elemArr[(i+1)]) { 
					elemArr[(i+1)].className = 'selected';
					elemSelected = elemArr[(i+1)];
				} else { 
					elemArr[0].className = 'selected'; 
					elemSelected = elemArr[0];
				}
				break;
			}
		}
		fcAccom.switchMediaImage();
	},


	switchMediaThumb:function(elem) {
		var elemThumb = document.getElementById('MediaThumbnailsList');
		var elemArr = elemThumb.getElementsByTagName('li');
		for(i=0, x=elemArr.length; i<x; i++) {
			elemArr[i].className = '';
		}
		elem.className = 'selected';
		fcAccom.switchMediaImage();
		fcAccom.stopSlideShow();
	},

	switchMediaImage:function() {
		var elemThumb = document.getElementById('MediaThumbnailsList');
		var imgID = 0;
		
		if(elemThumb) {
			var elemArr = elemThumb.getElementsByTagName('li');
			for(i=0, x=elemArr.length; i<x; i++) {
				if(elemArr[i].className == 'selected') {
					imgID = elemArr[i].id.split('thumbImg')[1];
				}
			}
		}
					
		var imgElem = document.getElementById(fcAccom.mmObjsMediaImgID).getElementsByTagName('img')[0];
		if(imgElem) {
			imgElem.src = fcAccom.mmObjsPhotos[imgID].url.src;
			imgElem.title = fcAccom.mmObjsPhotos[imgID].caption;
			imgElem.alt = fcAccom.mmObjsPhotos[imgID].caption;
		}
					
		var capElem = document.getElementById(fcAccom.mmObjsMediaImgID).getElementsByTagName('p')[0];
		if(capElem) { capElem.innerHTML = fcAccom.mmObjsPhotos[imgID].caption; }		
	},

	
	unitCreateSlideShowHTML:function(imgType) {
		
		if(fcAccom.mmObjsPhotos.length < 1) { return; }
		imgType = (!imgType ? 'all' : imgType);

		var outputHTML = '';
		outputHTML += '	<div id="MediaThumbnailsHeader">';
		outputHTML += '		<a href="#" onclick="fcAccom.playSlideShow(); return false" id="MediaSlideshowLink" class="arrow-link">View as a slideshow&nbsp;<span class="arrowPlaceholder">&nbsp;</span></a>';
		outputHTML += '		<h3 id="MediaThumbnailsHeaderText">' + (imgType == 'all' ? 'All photos<span class="unbold"> (' + fcAccom.mmObjsPhotos.length + ')</span>' : imgType + '<span class="unbold"> (' + fcAccom.mmObjsPhotosCats[imgType] + ')</span>' ) + '</h3>';
		outputHTML += '		<div class="clearer"></div>';
		outputHTML += '	</div>';
		outputHTML += '	<div id="MediaThumbnailsBody" class="columnFullPage">';
		outputHTML += '		<div id="mediaThumbnailsScrollLeft"><a href="#" title="Scroll left" onclick="return false" onmousedown="mediaThumbnailsScrollLeft(); return false" onmouseup="killScroll();" onmouseout="killScroll();"></a></div>';
		outputHTML += '			<div id="mediaThumbnailsCarouselWrapper">';
		outputHTML += '				<ul style="width: 2622px;" id="MediaThumbnailsList">';
		var inc = 0;
		for(var i=0, x=fcAccom.mmObjsPhotos.length; i<x; i++) {
			if(imgType == 'all' || imgType == fcAccom.mmObjsPhotos[i].tags) {
				outputHTML += '<li onclick="fcAccom.switchMediaThumb(this);" id="thumbImg' + i + '" ' + (inc==0 ? ' class="selected" ' : '' ) + '><img src="' + fcAccom.mmObjsPhotos[i].thumbnail.src + '" alt="' + fcAccom.mmObjsPhotos[i].caption + '" title="' + fcAccom.mmObjsPhotos[i].caption + '"></li>';
				inc++;
			}
		}
		outputHTML += '				</ul>';
		outputHTML += '				<div class="clearer"></div>';
		outputHTML += '			</div>';
		outputHTML += '			<div id="mediaThumbnailsScrollRight"><a href="#" title="Scroll right" onclick="return false" onmousedown="mediaThumbnailsScrollRight(); return false" onmouseup="killScroll();" onmouseout="killScroll();"></a></div>        ';
		outputHTML += '		</div>';
		outputHTML += '	</div>';
		document.getElementById('MediaThumbnails').innerHTML = outputHTML;
		fcAccom.switchMediaImage();
	}
}





function fcSlide() {

}

function fcCreateMMPhotoVars() {





}



/* ###################################################################### *\
	inArray prototype DOM ext - return true if string matched in array
	usage: <arrayName>.isInArray('<stringValue>');
\* ###################################################################### */

	Array.prototype.isInArray = function (value) {
		for (var i=0; i < this.length; i++) {
			if (this[i] === value) {
				return true;
			}
		}
		return false;
	};





fcTab={
	tabHash:false,
	tabTitle:'fcDetailTabs', // class name for tab section div and inner tab UL
	tabTop:'fcTabsTop', // link to top of tabs
	tabSelected:'selected', // classname to apply when the tab is selected
	tabPass:'fcTabsPass_', // used to pass in a switch request from a non-tab source
	
	/* initialise tabs */
	init:function() {
		/* do not proceed if dom not supported */
		if(!document.getElementById || !document.createTextNode){return;}
		fcTab.tabHash = fcTab.checkHash(); // check if a tab is to be preselected

		var ulElem = document.getElementsByTagName('ul');
		for(var i=0, x=ulElem.length; i < x; i++) {
			if(ulElem[i].className.indexOf(fcTab.tabTitle) != -1) {
				// ensure containing element has same classname as the unordered list
				if(ulElem[i].parentNode && (ulElem[i].parentNode.className.indexOf(fcTab.tabTitle) != -1)) {
					fcTab.initTabs(ulElem[i].parentNode, ulElem[i]);
					fcTab.assignSwitchEvents(ulElem[i].parentNode);
				}
			}
		}
	},
	
	/* assigns a switching event to other elements in the tabbed content section */
	assignSwitchEvents:function(elem) {
		
		var elemArr = elem.getElementsByTagName('*');
		for(var i=0,x=elemArr.length; i<x; i++) {
			if(elemArr[i].className && ( elemArr[i].className.indexOf(fcTab.tabPass) != -1)) {
				fcTab.addEvent(elemArr[i],'click',fcTab.passToSwitchTab,false);
			}
		}
	},

	/* create the tabbed section and apply onclick events */
	initTabs:function(container,listElem){

		var listButtons = listElem.getElementsByTagName('li');
		if(listButtons.length < 1) { return; }
		for(var i=0, x=listButtons.length; i<x; i++) {
			fcTab.addEvent(listButtons[i],'click',fcTab.switchTab,false);
		}
		/* default tab contents closed */
		var tabContents = container.getElementsByTagName('div');
		for(var i=0,x=tabContents.length;i<x;i++) {
			if(tabContents[i].parentNode.className.indexOf(fcTab.tabTitle) != -1) {
				tabContents[i].style.display = 'none';
				/* remove the links to top */
				var tmpLinks = tabContents[i].getElementsByTagName('a')
				for(var inc=0,count=tmpLinks.length; inc<count; inc++) {
					if(tmpLinks[inc].href.indexOf('#'+fcTab.tabTop) != -1) {
						tmpLinks[inc].parentNode.style.display='none';
					}
				}

				// remove main h2 when tabs are in use (h2 remains when js turned off to make navigation easier - allows h2 to exist in wrapper element
				if(tabContents[i].getElementsByTagName('h2').length > 0 && tabContents[i].getElementsByTagName('h2')[0].parentNode == tabContents[i]) {
					tabContents[i].getElementsByTagName('h2')[0].style.display = 'none';
				}
			}
		}
		
		fcTab.setInitialState(container);
	},
	
	/* sets which tab to initially display */
	setInitialState:function(elem){
		var elemArr = elem.getElementsByTagName('li');
		var passElem = elemArr[0];
		if(fcTab.tabHash) {
			for(var i=0,x=elemArr.length; i<x; i++) {
				if(elemArr[i].getElementsByTagName('a')[0] && elemArr[i].getElementsByTagName('a')[0].href.split('#')[1] == fcTab.tabHash) { passElem = elemArr[i]; }
			}
		}
		fcTab.switchTab('',passElem);
		if(fcTab.tabHash) { window.scrollTo(0,(fcTab.getYPos(elem)-10)); }
	},

	/* returns the vertical position of an element on the page */
	getYPos:function (inputElem) {
		var iReturnValue = 0;
		while(inputElem != null) {
			iReturnValue += inputElem.offsetTop;
			inputElem = inputElem.offsetParent;
		}
		return iReturnValue;
	},
	
	/* allows other elements in the page to switch tabs */
	passToSwitchTab:function(e) {
		
		var obj = (!e ? false : fcGetTargetElem(e));
		if(obj) {
			
			if(obj.className && (obj.className.indexOf(fcTab.tabPass) != -1)) {
				var tabPassArr = obj.className.split('_')[1];
				var ulElem = document.getElementsByTagName('ul');

				for(var i=0, x=ulElem.length; i < x; i++) {
					if(ulElem[i].className.indexOf(fcTab.tabTitle) != -1) {
						var liElem = document.getElementsByTagName('li');
						for(var inc=0, count=liElem.length; inc < count; inc++) {
							if(liElem[inc].getElementsByTagName('a')[0] && liElem[inc].getElementsByTagName('a')[0].hash.split('#')[1] == tabPassArr) {
								fcTab.switchTab('',liElem[inc]);
							}
						}
					}
				}
			}
			obj.blur();
		}
		if(e) { fcTab.cancelReturn(e); }
		return false;

	},
	
	
	/* switch to this tab when clicked if not already selected - accepts an event or an element directly as arguments */
	switchTab:function(e,elem) {
		
		var obj = (!e ? (!elem ? false : elem) : fcGetTargetElem(e));
		
		if(obj) {
			// ensure we target the list item level element or return false
			while(obj.nodeName.toLowerCase() != 'li') {
				obj = obj.parentNode;
			}
			if(obj.nodeName.toLowerCase() != 'li') { return false; }
			
			var inc = 0;
			var tmpElem = obj;
			
			// get the tabs for this tab set
			while(tmpElem.parentNode && inc < 20) {
				if(tmpElem.nodeName.toLowerCase() == 'ul' && tmpElem.className.indexOf(fcTab.tabTitle) != -1) { break; }
				tmpElem = tmpElem.parentNode;
				inc++
			}
			
			// get the parent container for this tab set
			var tmpParent = tmpElem.parentNode;
			while(tmpParent.parentNode && inc < 20) {
				if(tmpParent.className.indexOf(fcTab.tabTitle) != -1) { break; }
				tmpParent = tmpParent.parentNode;
				inc++
			}
			
			// set the correct tab to selected
			var tmpChild = tmpElem.getElementsByTagName('li');
			for(var i=0,x=tmpChild.length;i<x;i++) {
				if(tmpChild[i] == obj) { 
					if(obj.className.indexOf(fcTab.tabSelected) == -1) {
						obj.className = (obj.className == '' ? fcTab.tabSelected : ' '+fcTab.tabSelected);
					}
				} else {
					fcTab.setClass(tmpChild[i], tmpChild[i].className.split(' '), fcTab.tabSelected);
				}
			}
			
			// set the correct content to show
			var tmpContents = tmpParent.getElementsByTagName('div');
			for(var i=0,x=tmpContents.length;i<x;i++) {
				
				if(tmpContents[i].parentNode.className.indexOf(fcTab.tabTitle) != -1) {
					tmpContents[i].style.display = 'none';
					for(var inc=0,count=tmpContents[i].getElementsByTagName('a').length; inc<count; inc++) {
						if(tmpContents[i].getElementsByTagName('a')[inc].name == obj.getElementsByTagName('a')[0].hash.split('#')[1]) {
							tmpContents[i].style.display = 'block';
						}
					}
				}
			}
			
			
			
			if(obj.getElementsByTagName('a')[0].href.indexOf('#LocalInfo') != -1 || obj.getElementsByTagName('a')[0].href.indexOf('#Map') != -1) {
				
				
				if(typeof createGMap!="undefined" && document.getElementById('fcMapCreate') && !document.getElementById('mmShow_gmap_container_inner')) { 
					//alert('created map');
					createGMap(); 
				}
			}
			
			obj.blur();
			if(e) { fcTab.cancelReturn(e); }
		}
		return false;
	},
	
	/* apply the new class to an existing element */
	setClass:function(elem, arr, repStr){
		var newClass = '';
		for(var i=0,x=arr.length; i<x; i++) {
			if(arr[i] != '' && arr[i] != repStr) { newClass += (i==0 ? arr[i] : ' ' + arr[i]); }
		}
		elem.className = newClass;
	},
	
	/* cancel return on events to stop links working as links */
	cancelReturn:function(e){
		if(!e) { e = window.event; }
		e.cancelBubble = true;
		e.returnValue = false;
		if(e.stopPropagation) {
			e.stopPropagation();
			e.preventDefault();
		}		
	},
	
	/* allows initial tab selection to be passed in via url hash */
	checkHash:function(){
		if(location.hash && (location.hash.split('#')[1] != '')) {
			return location.hash.split('#')[1];
		} else {
			return false;
		} 
	},
	
	/* attach event listener from here if addEvent is not defined in the main scripts yet */
	addEvent:function(elem, type, listener, useCapture){
		if (elem.addEventListener) {
			elem.addEventListener(type, listener, useCapture);
			return true;
		} else if (elem.attachEvent) {
			return elem.attachEvent('on' + type, listener);
		} else {
			elem['on' + evType] = fn;
		}
	}
	
}



function someTest(elem){

	return 'elem html = ' + elem.innerHTML;

}


/* find the target element for the event */
function fcGetTargetElem(e){
	var target = (window.event ? window.event.srcElement : (e ? e.target : null));
	if (!target){return false;}
	return target;
}


/* attach event listener from here if addEvent is not defined in the main scripts yet */
//addEvent:function(elem, type, listener, useCapture){
function fcAddEvent(elem, type, listener, useCapture){
	if (elem.addEventListener) {
		elem.addEventListener(type, listener, useCapture);
		return true;
	} else if (elem.attachEvent) {
		return elem.attachEvent('on' + type, listener);
	} else {
		elem['on' + evType] = fn;
	}
}

function popitup(url) {
	newwindow=window.open(url,'name','height=260,width=480');
	if (window.focus) {newwindow.focus()}
	return false;
}

fcAddEvent(window, 'load', fcTab.init, false); // add any tab events to the page

