/*
Lightbox Slideshow
Author: Paul Sayre
Date: 2007-01-22

Creates a Lightbox-like slideshow with an array as input.

To create, follow this syntax:
<script>
	var lsi = [];
	lsi[lsi.length] = {full: 'images/3f44f68c1132ea03.jpg', thumb: 'images/3f44f68c1132ea03_t.jpg', caption: 'Mt. Rainier'};
	lsi[lsi.length] = {full: 'images/8c435b46019ae88f.jpg', thumb: 'images/8c435b46019ae88f_t.jpg', caption: 'Prairy'};
	lsi[lsi.length] = {full: 'images/315e770c4ba54f19.jpg', thumb: 'images/315e770c4ba54f19_t.jpg', caption: 'Pine Cones'};
	lsi['close'] = 'images/closelabel.gif';	// or false if no button
	lsi['prev'] = 'images/prevlabel.gif';	// or false if no button
	lsi['next'] = 'images/nextlabel.gif';	// or false if no button
	
	// All these are optional. If not set, it uses defaults.
	var options = {duration: .5, top: 100, width: 800, first: 0, opacity: .8};
	
	// Needs to be varible ls
	var ls = new LightboxSlideshow(lsi, options);
</script>
*/

var effectDuration;
	
function Lightbox360( options) {
	
	// Defaults
	var overlayOpacity = .8;
	effectDuration = 1;
	var width = 700;
	var height = 340;
	var top = 50;
	var evoxId = '';
	var flashId = 1;
	
	// Options
	if(options) {
		if(Object.isNumber(options.width)) width = options.width;
		if(Object.isNumber(options.height)) height = options.height;
		if(Object.isNumber(options.top)) top = options.top;
		if(Object.isNumber(options.duration)) effectDuration = options.duration;
		if(Object.isNumber(options.opacity)) overlayOpacity = options.opacity;
	}
	
	// Setup Overlay
	//document.writeln('<div id="overlay360" onclick="lf360.stop()">&nbsp;</div>');
	var vpsize = document.viewport.getDimensions();
	var docsize = $$('body')[0].getDimensions();
	var newsize = {
		height: vpsize.height > docsize.height ? vpsize.height : docsize.height,
		width: vpsize.width > docsize.width ? vpsize.width : docsize.width
	};
	//alert(height);
  	$('overlay360').hide();
	$('overlay360').setStyle({
		height: (newsize.height)+'px',
		width: (newsize.width)+'px',
		opacity: overlayOpacity
	});
	
	// Setup Lightbox
	//document.writeln('<div id="lightbox360">');
	// Cache Images
	/*for(var i=0; i<imgs.length; i++) {
		document.writeln('	<img id="lightboxImage'+i+'" src="'+imgs[i].full+'" style="display:none;" />');
	}*/
	/*document.writeln('	<div id="lightbox360Container">');

	document.writeln('		<div id="lightbox360Close">');
	document.writeln('			<img src="'+btnClose+'" onclick="lf360.stop()" /></a>');
	document.writeln('		</div>');
	
	document.writeln('		<div id="360Box" style="padding-left: 20px;">');

	document.writeln('		<div class="tabs" id="exteriorFlash" onclick="generateFlashObj(document.getElementById(\'eVoxNum\').value)">Exterior</div>');
	document.writeln('		<div class="tabs" id="interiorFlash" onclick="loadInterior(document.getElementById(\'eVoxNum\').value)">Interior</div>');
	document.writeln('		<div class="cleaner">&nbsp;</div>');
		document.writeln('		<div id="FlashObj">');
							
		document.writeln('		</div>');	
			
	document.writeln('		</div>');

	document.writeln('	</div>');
	document.writeln('</div>');
	*/
	$('lightbox360').hide();
	$('lightbox360').setStyle({
		left: (vpsize.width-width)/2+'px',
		top: top+'px',
		width: width+'px'
	});
	
}

Lightbox360.prototype = {
	start: function(evox, elem, ext_flash, int_flash) {	
		$('lightbox360').setStyle({
			top: ($(elem).cumulativeScrollOffset()['top']+50)+'px'
		});
	
		if (ext_flash==true)
		{
			generateFlashObj(evox);
			$('exteriorFlash').show();
		}
		else
		{
			loadInterior(evox);
			$('exteriorFlash').hide();
		}
		
		if (int_flash==true)
		{
			$('interiorFlash').show();
		}
		else
		{
			$('interiorFlash').hide();
		}
				
			
		new Effect.Appear('lightbox360', {duration: effectDuration, beforeStart: function() {
			$('overlay360').show();
			//Effect.ScrollTo('header');
		}});
			
	},
	stop: function() {
		
		/*if (document.all)
		{
			document.getElementById('quick_facts_obj').StopPlay();
		}*/
		new Effect.Fade('lightbox360', {duration: effectDuration, afterFinish: function() {
			$('overlay360').hide();
		}});
	}
};

function generateFlashObj(evox)
{
	var str = '';
	
	str += '<div>';
	str += '<input type="hidden" id="eVoxNum" value="' + evox + '"/>'
	str += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="640px" height="480px" id="quick_facts_obj">';
	str += '				<param name="movie" value="/evox/exterior_036_swf_640/' + evox + '_ex036_640.swf">';
	str += '				<param name="quality" value="high">';
	str += '				<param name="loop" value="5">';
	str += '				<embed id="quick_facts_obj" src="/evox/exterior_036_swf_640/' + evox + '_ex036_640.swf" width="640px" height="480px" loop="5" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false"></embed>';
	str += '			</object>';
	str += '</div>';
	
	$('FlashObj').innerHTML = str;	
}

function loadInterior(evox)
{
	str = '<div>';
	str += '<input type="hidden" id="eVoxNum" value="' + evox + '"/>'
	str += '<object classid="" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="480px" height="360px" id="interior">';
	str += '				<param name="movie" value="/evox/interior_swf_sm/' + evox + '_sm.swf">';
	str += '				<param name="quality" value="high">';
	str += '				<embed id="interior" src="/evox/interior_swf_sm/' + evox + '_sm.swf" width="480px" height="360px" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" menu="false"></embed>';
	str += '			</object>';
	str += '</div>';
	
	$('FlashObj').innerHTML = str;	
}