/******************************************************************************
	Common flash code
******************************************************************************/
	var requiredMajorVersion = 7;
	var requiredMinorVersion = 0;
	var requiredRevision = 0;
	var pollInterval;
	//var flashProxy = new FlashProxy();
	
	
	
	function IsNullString(str)
	{
		return (str == null || str == "");
	}
	
	function getFlashTag(objName,objSrc) {
		if(IsNullString(objName))
		{
			objName = "generic";
		}
		if(IsNullString(objSrc))
		{
			objSrc = "generic.swf";
		}

		var otag='<center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="1000" height="550" id="generic" align="middle">';
		otag+='<param name="movie" value="generic.swf" />';
		otag+='<param name=FlashVars value="' + fvars + '" />';
		otag+='<param name="allowScriptAccess" value="sameDomain" />';
		otag+='<param name="quality" value="high" />';
		otag+='<param name="bgcolor" value="#000000" />';
		otag+='<embed src=\"'+objSrc+'\" FlashVars="' + fvars + '" width="1000" height="550" name="' + objName+ '" id="' + objName + '" loop="false" align="middle" quality="high"  bgcolor="#000000" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
		otag+='</object></center>';
		return otag;
	}
	function returnBrowser() {
		var b;
		b=((navigator.appName == "Microsoft Internet Explorer")?"MSIE":b);
		b=((navigator.appName == "Netscape")?"Netscape":b);
		b=((navigator.userAgent.indexOf("Firefox") > -1)?"Firefox":b);
		b=((navigator.userAgent.indexOf("Camino") > -1)?"Camino":b);
		b=((navigator.userAgent.indexOf("Safari") > -1)?"Safari":b);
		b=((navigator.userAgent.indexOf("Opera") > -1)?"Opera":b);
		return b=((b)?b:"Other");
	}
	function pollHash(){
		if (window.location.hash.substr(1)==recentHash) return;
		if (frameHist){
			document.location.reload();
		} else {
			storeCurrentHash();
			if (browser != "MSIE"){
				flashProxy.call('pollNav', recentHash);
			}
		}
	}
	function flashPutHash(str) {
		if ((browser=="Safari")&&!(str.length>0)) return;
		location.hash = str;
		storeCurrentHash();
		clearInterval(pollInterval);
		startPolling();
	}
	function storeCurrentHash(){
		recentHash = window.location.hash.substr(1);
		//alert(window.location);
		//alert(window.location.hash);
		//alert(recentHash);
	}
	function startPolling(){
		pollInterval = setInterval('pollHash()',800);
	}
	//asako
	function flashPutHashTitle(stateStr, winTitle){
		flashPutHash(stateStr);
		flashPutTitle(winTitle);
	}
	function flashPutTitle(str) { 
		top.document.title =str.replace("Fancy Feast","Fancy FeastŪ"); 
	}
	var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
	var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
	var jsVersion = 1.1;
	function JSGetSwfVer(i){
		// NS/Opera version >= 3 check for Flash plugin in plugin array
		if (navigator.plugins != null && navigator.plugins.length > 0) {
			if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
				var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      			var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
				descArray = flashDescription.split(" ");
				tempArrayMajor = descArray[2].split(".");
				versionMajor = tempArrayMajor[0];
				versionMinor = tempArrayMajor[1];
				if ( descArray[3] != "" ) {
					tempArrayMinor = descArray[3].split("r");
				} else {
					tempArrayMinor = descArray[4].split("r");
				}
      			versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
				flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
      		} else {
				flashVer = -1;
			}
		}
		// MSN/WebTV 2.6 supports Flash 4
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
		// WebTV 2.5 supports Flash 3
		else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
		// older WebTV supports Flash 2
		else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
		// Can't detect in all other cases
		else {
			
			flashVer = -1;
		}
		return flashVer;
	} 


	function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) 
	{
 		reqVer = parseFloat(reqMajorVer + "." + reqRevision);	
		for (i=25;i>0;i--) {	
			if (isIE && isWin && !isOpera) {
				versionStr = VBGetSwfVer(i);
			} else {
				versionStr = JSGetSwfVer(i);		
			}
			if (versionStr == -1 ) { 
				return false;
			} else if (versionStr != 0) {
				if(isIE && isWin && !isOpera) {
					tempArray         = versionStr.split(" ");
					tempString        = tempArray[1];
					versionArray      = tempString .split(",");				
				} else {
					versionArray      = versionStr.split(".");
				}
				versionMajor      = versionArray[0];
				versionMinor      = versionArray[1];
				versionRevision   = versionArray[2];
				
				versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
				versionNum        = parseFloat(versionString);
        		// is the major.revision >= requested major.revision AND the minor version >= requested minor
				if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
					return true;
				} else {
					return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );	
				}
			}
		}	
	}


	var initialURL = new String(document.location);

	var browser = returnBrowser();
	var frameHist = (browser=="Safari")||((initialURL.substr(0,4)=="http")&&(browser=="MSIE"));
	var uid = new Date().getTime();

	var fvars = "lcId="+uid;
	fvars += "&browser="+ browser;
	fvars += "&titlebase=" + escape(top.document.title).replace("%AE","");
	
	var recentHash = "";
	if (window.location.hash.length>0){
		storeCurrentHash();
	} else {
		// Roman can add flashVars here by setting the "recentHash" variable, like:
		// recentHash = "title=foochy&page=foochy";
	}
	fvars += ("&"+recentHash);


	if (!frameHist) var flashProxy = new FlashProxy("p"+uid, 'JavaScriptFlashGateway.swf');
	var pollInterval;
	window.onload = function() {startPolling();}












	/**********************************************************************
		Abstracted version of Adobe/Macromedia's Flash version string code
	**********************************************************************/

	function GetSWFVer()
	{
		var useVB = isIE && isWin && !isOpera;

		for (i=25;i>0;i--)
		{
			if (useVB)
			{
				versionStr = VBGetSwfVer(i);
			} else {
				versionStr = JSGetSwfVer(i);		
			}
			if (versionStr == -1){return -1;}
			if (versionStr != 0){return versionStr;}
		}
	}





	/**********************************************************************
		Proxy function for Flash to execute Javascript on the browser
	**********************************************************************/
	
	function generic_FSCommand(cmd, args)
	{
		switch(cmd.toLowerCase())
		{
			case "puthref":
				document.location = args;
				break;
			case "puttitle":
				document.title = args;
				break;
			case "setvar":
				eval(args);
				break;
			case "execjs":
				eval(args);
				break;
		}
	}

	generic_DoFSCommand = generic_FSCommand;

	/**********************************************************************
		Build the JS function that will be called when the Flash move
		calls "fscommand". This sets up a proxy function to 
		generic_FSCommand.
	**********************************************************************/
	function mapFSCommand(obj)
	{
			var name="";
			name = (obj != null) ? obj.name : "" ;
			name = (IsNullString(name)) ? obj.id:name;
			
			var fncName = name + "_DoFSCommand";
			var setFncName = fncName + " = generic_FSCommand";
			//Map our new function to the generic FS command
			eval(setFncName);
			return fncName;
	}

	
	naturals_open3_DoFSCommand = generic_FSCommand;
	