/*================
Copyright 2008 Novasys AG
Adrian Schneider
	
JavaScript <-> ActionScript 
interface for Maponair 6 flash mapping client
================*/

/*==================
FLASH INIT
==================*/
var flashPlayer;
var flashPlayerId = 'instance_1';
var flashPlayerName = 'MapClient.v2.5';
var flashPlayerPath = 'http://services.novasys.com/mapClient/v2.5/';
var customerNumberSizeLimit = 30;
function SetFlashPlayerId(value)
{
	flashPlayerId = value;
}
function DetectFlashPlayerObject()
{
	var flashPlayerObject;
	if (navigator.appName.indexOf("Microsoft") != -1)
	{
		//Internet Explorer
		flashPlayerObject = document.getElementById(flashPlayerId);	
	}
	else if (navigator.appName.indexOf("Microsoft") == -1 && document.embeds[flashPlayerId] != undefined)
	{
		// Firefox, Opera, ...
		flashPlayerObject = document.embeds[flashPlayerId];
	}		
	else if (navigator.appName.indexOf("Microsoft") == -1 && window.document.embeds[flashPlayerId] != undefined)
	{
		// Firefox, Opera, ...
		flashPlayerObject = window.document.embeds[flashPlayerId];
	}	
	else if (navigator.appName.indexOf("Microsoft") == -1 && parent.window.document.embeds[flashPlayerId] != undefined)
	{
		// Firefox, Opera, ...
		flashPlayerObject = parent.window.document.embeds[flashPlayerId];
	}
	else if (document[flashPlayerId] != undefined)
	{
		// mozilla (netscape)
		flashPlayerObject = document[flashPlayerId];
	}
	else if (window.document[flashPlayerId] != undefined)
	{
		// mozilla (netscape)
		flashPlayerObject = window.document[flashPlayerId];
	}
	else if (parent.window.document[flashPlayerId] != undefined)
	{
		// mozilla (netscape)
		flashPlayerObject = parent.window.document[flashPlayerId];
	}	
	else
	{
		//not found !!
	}
	//alert("Flash object : "+flashPlayerObject+" in "+navigator.appName);
	return flashPlayerObject;
}

/*==================
FLASH LOAD
==================*/
function LoadMapClient(p_customerNumber,p_customerProfileName,p_container,p_showMap)
{
		var customerNumberOrToken;
		if (p_customerNumber.length >= customerNumberSizeLimit)
		{
			customerNumberOrToken = 'token='+p_customerNumber;			
		}
		else
		{	
			customerNumberOrToken = 'customerNumber='+p_customerNumber;
		}
		if(p_showMap == undefined)
		{
			p_showMap = true;
		}
		var myParams;
		myParams = customerNumberOrToken+'&customerProfile='+p_customerProfileName+'&showMap='+p_showMap+'&baseUrl='+flashPlayerPath+'&clientName='+flashPlayerName+'&clientId='+flashPlayerId;
		SetContainer(document.getElementById(p_container));
		var isLoaded = AC_FL_RunContent(
			'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',
			'width', '100%',
			'height', '100%',
			'src', flashPlayerPath+flashPlayerName,
			'movie', flashPlayerPath+flashPlayerName,
			'id', flashPlayerId,
			'name', flashPlayerId,
			'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
			'quality', 'high',
			'align', 'top',
			'play', 'true',
			'loop', 'true',
			'scale', 'showall',
			'wmode', 'opaque',
			'devicefont', 'false',
			'bgcolor', '#FFFFFF',
			'menu', 'false',
			'allowFullScreen', 'false',
			'flashvars', myParams,
			'allowScriptAccess','always',
			'swliveconnect','true',
			'salign', ''
			);
		if (isLoaded)
		{
			flashPlayer = DetectFlashPlayerObject();
			try
			{
				if (flashPlayer.addEventListener)
				{
					flashPlayer.addEventListener('DOMMouseScroll',HandleMouseWheel,false);
				}
			}
			catch(e)
			{
				//alert(e.toString());
			}			
		}
		return flashPlayer;
}

// http://adomas.org/javascript-mouse-wheel/
// special mouse-wheel handler for FireFox.
// this is intended to be a temporary workaround...
// until Adobe resolve the FireFox flash plugin issue.
function HandleMouseWheel(p_event)
{
	var delta = 0;
	//only firefox
       	if (p_event.detail)
       	{
       		delta = -p_event.detail/3;
       	}
       	if (delta)
       	{
        	try
       		{	        	
		        flashPlayer.MouseWheelEvent(delta);
			if (p_event.preventDefault)
        		{
        			p_event.preventDefault();
			}
			p_event.returnValue = false;
		}
        	catch(e)
		{
			//alert(e.toString());
		}  			
       	}      
}