//---------------------------------------------------------------------------------------------------------
//	Gallery page item toggle
//---------------------------------------------------------------------------------------------------------
	function toggle(item_on,item_off)
	{
		document.getElementById(item_off).style.display	= 'none';
		document.getElementById(item_on).style.display = 'block';
	}

//*******************************************************************************************************
//-------------------------------------------------------------------------------------------------------
//	Gallery Widget DHTML
//-------------------------------------------------------------------------------------------------------
//*******************************************************************************************************

//-------------------------------------------------------------------------------------------------------
//	Init parameters
//-------------------------------------------------------------------------------------------------------
	slideShowOn = false;
	currWidth	= 0;
	currHeight	= 0;
	prevWidth	= 0;
	prevHeight	= 0;

	function closeAndRefresh()
	{
		document.getElementById('dim').style.display = 'none';
		document.getElementById('sl1').style.display = 'none';
		document.getElementById('header-image').style.display = 'block';
		document.body.style.overflow = 'auto';
		
		resetMedia( 'media' );
		swapImg( 'media', '/gallery/images/blank.gif' );
		setBoxSize( 'media', 0, 0 );
		prevWidth  = 0;
		prevHeight = 0;

		slideShowOn = false;
	}

//-------------------------------------------------------------------------------------------------------
//	Turn the slideshow widget on or off
//-------------------------------------------------------------------------------------------------------
	function toggleSlideshow( slideshow_id, start_slide, start_width )
	{
		if (slideShowOn == false)
		{
			current_slide=(start_slide-1);
			nextSlide( slideshow_id );
			
			scroll(0,0);
			document.getElementById('sl1').style.display = 'block';
			document.getElementById('dim').style.display = 'block';
			document.getElementById('header-image').style.display = 'none';
			document.body.style.overflow = 'hidden';
			slideShowOn = true;
		}
		
		else
		{
			document.getElementById('dim').style.display = 'none';
			document.getElementById('sl1').style.display = 'none';
			document.getElementById('header-image').style.display = 'block';
			document.body.style.overflow = 'auto';
			
			resetMedia( slideshow_id );
			swapImg( slideshow_id, '/gallery/images/blank.gif' );
			setBoxSize( slideshow_id, 0, 0 );
			prevWidth  = 0;
			prevHeight = 0;

			slideShowOn = false;
		}
	}

//-------------------------------------------------------------------------------------------------------
//	previousSlide
//-------------------------------------------------------------------------------------------------------
	function previousSlide( slideshow_id )
	{
		if( !document.getElementById( slideshow_id ))
		{
			return;
		}

		current_slide--;
		
		if( current_slide < 1 )
		{
			if( !loop )
			{
				current_slide	= 1;
				return;
			}
			
			current_slide = slide_count;
		}

		//	Change the slide
		changeSlide( slideshow_id, current_slide );
	}

//-------------------------------------------------------------------------------------------------------
//	nextSlide
//-------------------------------------------------------------------------------------------------------
	function nextSlide( slideshow_id )
	{
		if( !document.getElementById( slideshow_id ))
		{
			return;
		}
		
		current_slide++;
		
		if( current_slide > slide_count )
		{
			if( !loop )
			{
				current_slide	= slide_count;
				return;
			}
			
			current_slide = 1;
		}

		changeSlide( slideshow_id, current_slide );
	}

//-------------------------------------------------------------------------------------------------------
//	showSlide
//-------------------------------------------------------------------------------------------------------
	function showSlide( slideshow_id, slide_image_src )
	{
		slideshowObj					= document.getElementById( slideshow_id );
		slideshowObj.src				= 'slide_image_src';
		slideshowObj.style.visibility	= "visible";
	}

//-------------------------------------------------------------------------------------------------------
//	showSlide
//-------------------------------------------------------------------------------------------------------
	function changeSlide( slideshow_id, current_slide )
	{
		timeout_offset = 0;
		
		//	Get slide properties
		slide				= slides[ current_slide ];
		slide_image_src		= slide['src'];
		slide_image_width	= slide['width'];
		slide_image_height	= slide['height'];
		slide_title		    = slide['title'];
		currWidth			= slide_image_width;
		currHeight			= slide_image_height;

		//	Get slide object
		slideshowObj	= document.getElementById( slideshow_id );
		
		document.getElementById('slide-title').innerHTML  = '';

		//	Reset the media item if it exists
		resetMedia( slideshow_id );
		
		//	Set the waiting graphic
		document.getElementById('frame').style.backgroundImage = 'url( /gallery/images/spinner.gif )';
		
		//	Swap the image
		FadeOutImage(slideshow_id, timeout_offset);
		
		//	Change the slide size
		changeSlideSize( slideshow_id, slide_image_width, slide_image_height, timeout_offset );
		
		//	Set the slide to change
		delay_func		= "setOpacity('" + slideshow_id + "',10);changeMediaItem('" + slideshow_id + "','" + slide_image_src + "','" + slide_image_width + "','" + slide_image_height + "','" + slide_title + "');";
		slideshow_delay	= setTimeout( delay_func, 500+timeout_offset );

		//	Update counter
		slide_counter_content	= current_slide + " of " + slide_count;
		slideCounterObj	= document.getElementById( 'slidecounter' );
		slideCounterObj.innerHTML	= slide_counter_content;
	}
	
//-------------------------------------------------------------------------------------------------------
//	changeMediaItem
//-------------------------------------------------------------------------------------------------------
	function changeMediaItem( slideshow_id, slide_image_src, slide_image_width, slide_image_height, slide_title)
	{
		//	Load the new media item
		loadURL = slide_image_src;
		loadDivContents( loadURL, slideshow_id );
	
		//	Give it time to load, then show it
		delay_func  = "document.getElementById( '"+slideshow_id+"' ).style.visibility = 'visible';";
		delay_func += "document.getElementById('frame').style.backgroundImage = 'none';";
		delay_func += "document.getElementById('slide-title').innerHTML = '"+slide_title+"';";

		unmask_delay = setTimeout( delay_func, 300 );
	}

//-------------------------------------------------------------------------------------------------------
//	resetMedia
//-------------------------------------------------------------------------------------------------------
	function resetMedia( slideshow_id )
	{
		if (!slideShowOn)
		{
			return;
		}
		
		Safari = (navigator.userAgent.indexOf("Safari") > -1) ? 1 : 0;
		
		document.getElementById( slideshow_id ).style.visibility = 'hidden';
		
		if (Safari)
		{
			if (document.getElementById('mediaobject'))
			{
				document.mediaobject.Stop();
			}
		}
		
		document.getElementById( slideshow_id ).innerHTML = '';	
	}

//-------------------------------------------------------------------------------------------------------
//	FadeOutImage
//-------------------------------------------------------------------------------------------------------
	function FadeOutImage(slideshow_id, timeout_offset)
	{
		//	100%
		max_filter = 1;

		//	Fade out
		setTimeout( "setOpacity('" + slideshow_id + "',10);",	10+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',9);",	20+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',8);",	30+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',7);",	40+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',6);",	50+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',5);",	60+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',4);",	70+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',3);",	80+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',2);",	90+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',1);",	100+timeout_offset );
		
		//	Fadeout done, wait for the new one
		setTimeout( "document.getElementById( '" + slideshow_id + "' ).innerHTML = '';",	110+timeout_offset );
		setTimeout( "setOpacity('" + slideshow_id + "',10);",	150+timeout_offset );
	}

//-------------------------------------------------------------------------------------------------------
//	setOpacity
//-------------------------------------------------------------------------------------------------------
	function setOpacity( slideshow_id, opacity )
	{
		document.getElementById( slideshow_id ).style.opacity = opacity/10;
		document.getElementById( slideshow_id ).style.filter = 'alpha(opacity=' +  (opacity*10) + ')';	
	}

//-------------------------------------------------------------------------------------------------------
//	size functions
//-------------------------------------------------------------------------------------------------------
	function setBoxSize( slideshow_id, newWidth, newHeight )
	{
		document.getElementById( slideshow_id ).style.width = newWidth+'px';
		document.getElementById( slideshow_id ).style.height = newHeight+'px';
	}

//-------------------------------------------------------------------------------------------------------
//	changeSlideSize
//-------------------------------------------------------------------------------------------------------
	function changeSlideSize( slideshow_id, slide_image_width,slide_image_height,timeout_offset )
	{
		widthDifference = slide_image_width-prevWidth;
		widthParts		= widthDifference / 20;
			
		heightDifference = slide_image_height-prevHeight;
		heightParts		 = heightDifference / 20;
			
		for (s=1; s<=20;s++ )
		{
			newWidth  = (prevWidth+(widthParts*s));
			newHeight = (prevHeight+(heightParts*s));
			
			setTimeout( "setBoxSize('"+slideshow_id+"',"+newWidth+","+newHeight+");", 350+(10*s)+timeout_offset );
		}
		
		prevWidth  = slide_image_width;
		prevHeight = slide_image_height;

	}
		
//-------------------------------------------------------------------------------------------------------
//	ChangeAction
//-------------------------------------------------------------------------------------------------------
	function ChangeAction( formaction )
	{
		document.forms[0].action	= formaction;
		document.forms[0].target	= "_top";
	}

//-------------------------------------------------------------------------------------------------------
//	changeWidgetSize
//-------------------------------------------------------------------------------------------------------
	function changeWidgetSize( id, size )
	{
		document.getElementById(id).style.height = size + 'px';
	}

//-------------------------------------------------------------------------------------------------------
//	toggleCaption
//-------------------------------------------------------------------------------------------------------
	function toggleCaption()
	{
		if (document.getElementById('details-caption-contents'))
		{
			if (document.getElementById('details-caption-contents').style.display == 'none')
			{	
				document.getElementById('details-caption-contents').style.display = 'block';
				document.getElementById('details-caption-button').style.display = 'none';
			}

			else
			{	
				document.getElementById('details-caption-contents').style.display = 'none';
				document.getElementById('details-caption-button').style.display = 'block';
			}
		}
	}

//#########################################################################################################
//
//	Public AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Load an object dynamiclly with a source page
//---------------------------------------------------------------------------------------------------------
function loadDivContents( url, div )
{
	objNumber = 0;
	
	//	Have we used the div object before?
	for( i=1; i<= HTTPObjects.length; i++ )
	{
		if (HTTPObjects[i] == div)
		{
			objNumber = i
		}
	}

	//	Not found?
	if(!objNumber)
	{
		objNumber				= HTTPObjects.length;
		HTTPObjects[objNumber]	= div;
	}

	//	Generate the div object pointer
	var divObj = eval( 'document.getElementById("' + div + '");' );
	
	eval( 'http' + objNumber + ' = initHTTPObject();' );
	eval( 'if (!http' + objNumber + '){window.location=\'/site/compatability.php\';}' );
	eval( 'http' + objNumber + '.open("GET", url, true );');
	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {divObj.innerHTML = http' + objNumber + '.responseText;}};');
	eval( 'http' + objNumber + '.send(null);');
}

//---------------------------------------------------------------------------------------------------------
//	Submit a webtop form inline inisde a container
//---------------------------------------------------------------------------------------------------------
function PostFormInline( formname, processurl, div, updatepage )
{
	objNumber = 0;
	
	//	Have we used the div object before?
	for( i=1; i<= HTTPObjects.length; i++ )
	{
		if (HTTPObjects[i] == div)
		{
			objNumber = i
		}
	}

	//	Not found?
	if(!objNumber)
	{
		objNumber				= HTTPObjects.length;
		HTTPObjects[objNumber]	= div;
	}

	//	Generate the div object pointer
	var divObj = eval( 'document.getElementById("' + div + '");' );
	
	//	Get the fields
	eval( 'string = compileAllFieldValues( document.forms.' + formname + ' );');
	
	eval( 'http' + objNumber + ' = initHTTPObject();' );
	eval( 'http' + objNumber + '.onreadystatechange = function() { if (http' + objNumber + '.readyState == 4) {divObj.innerHTML = http' + objNumber + '.responseText;if(updatepage){updatePage();}}};');
	eval( 'http' + objNumber + '.open("POST", "' + processurl + '", true );');
	eval( 'http' + objNumber + '.setRequestHeader("Content-Type","application/x-www-form-urlencoded");');
	eval( 'http' + objNumber + '.send(string);');
	
	return false;
}

//#########################################################################################################
//
//	Private AJAX functions
//
//#########################################################################################################

//---------------------------------------------------------------------------------------------------------
//	Define the elements
//---------------------------------------------------------------------------------------------------------
var HTTPObjects = Array();	//	Track all the used HTTP objects on the page
var objNumber   = null;

//---------------------------------------------------------------------------------------------------------
//	Initialize a new HTTP object
//	PRIVATE
//---------------------------------------------------------------------------------------------------------
function initHTTPObject() 
{
	var xmlhttp;
	
	try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
 	 	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 		} catch (E) {
			xmlhttp = false;
 		}
	}

	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
  			xmlhttp = new XMLHttpRequest();
		} catch (e) {
  			xmlhttp = false;
		}
	}

	return xmlhttp;
}


function dbgDump( collection, prefix )
{
	msg		= '';
	counter = 0;

	for ( var name in collection )
	{
		if ( prefix )
		{
			if ( name.substring(0, prefix.length) != prefix )
			{
				continue;
			}
		}

		msg += name + " = " +  collection[name] + "\r\n";

		if ( counter == 50 )
		{
			alert(msg );
			msg = '';
			counter = 0;
		}
		counter++;
	}

	if ( counter < 50 )
	{
		alert( msg );
	}
}