
//
// Simple Logging ---------------------------------------------------------
//

function createLog( check )
{
	if( debug )
	{
		$("body").prepend(
			'<div id="logwrapper">' +
			'  <div id="log" class="logHidden hidden"> </div>' +
			'  <div id="logopts">' +
			'    <span id="logtoggle" onclick="toggleLog()">(show)</span>' +
			'    <span id="logclear" onclick="clearLog()">(clear)</span>' +						
			'    <span id="heartbeat">Heartbeat (<span id="heartbeatcount">0</span>)</span>' +
			'    <input type="checkbox" value"foo" id="logSuppressUnload" onchange="unloadCheck=!unloadCheck"><label for="logSuppressUnload">Suppress Unload</label></input>' +
			'  </div>' +
			'</div>'
		);
		$('#logSuppressUnload').attr("checked",check);	
	}
}

function log( msg )
{
	if( debug )
	{
		$('#log').prepend( "<pre style='margin: 0;'>" + msg + "</pre>" );
		if( $('#log').hasClass('logHidden') )
		{
			var count = parseInt( $('#log').attr('logCount') );
			
			if( !count || count=="" ) 
			{
				count = 1;
			}
			else
			{
				count = count + 1;
			}
			
			$('#log').attr('logCount',count);
			$('#logtoggle').text( "(show - " + count + " new)" );
			$('#logtoggle').stop( true, true );			
			highlightThrob( '#logtoggle', "#00FF00", "#DADADA", 1 );
		}
		else
		{
			$('#log').attr('logCount','');
		}
	}
}

function toggleLog()
{
	$('#log').attr('logCount','');
	$('#log').toggleClass('logHidden').slideToggle();
	$('#logtoggle').stop( true, true );
	if( $('#log').hasClass('logHidden') )
	{		
		$('#logtoggle').text( "(show)" );		
	}
	else
	{
		$('#logtoggle').text( "(hide)" );				
	}		
}

function clearLog()
{
	$('#log').text( "" );
}


var unloadCheck = false;
window.onbeforeunload = function (evt) 
{
	if( unloadCheck )
	{
		var message = 'Are you sure you want to leave?';
		if( typeof evt == 'undefined' ) // IE
		{
			evt = window.event;
		}
		if( evt ) 
		{
			evt.returnValue = message;
		}
		return message;
	}
}




//create the log on document ready
$(document).ready(function() {
	createLog(unloadCheck);
});


// throbber ---------------------------------------------------------------

function highlightThrob( selector, start, end, count )
{
	var el = $(selector);
	el.animate(
		{ 
			borderLeftColor: start
		}, 300 
	)
	.animate (
		{ 
			borderLeftColor: end
		}, 600, function() { if(count>1) highlightThrob( selector, start, end, count-1 ); } 			
	);
}