﻿//

//  DevalVR + QuickTime + PTviewer + Flash + Spi-v  Javascript workaround

//	Author: fiero http://www.devalvr.com

//  Version: 1.2.4

//

//	To embed a panorama just include these lines in your HTML file (change filenames):

//

//	<SCRIPT type="text/javascript" src="detectvr.js"></SCRIPT>

//	<SCRIPT type="text/javascript">

//		writecode("fileForQT.mov","fileForDevalVR.mov","fileForJava.jpg","fileForFlash.swf","fileForSPIV.jpg","100%","94%");

//	</SCRIPT>

//

//

//	NOTE: To use Spi-v viewer, place "SPi-V.dcr" file in same folder that HTML file, 

//        you can find it here: http://www.fieldofview.com

//	

// 	IMPORTANT: Use this file at your own risk

//



var minQTVersion = "5.0.0";			// minimal required version checked for QuickTime

var minDevalVRVersion = "0,5,0,0";  // minimal required version checked for DevalVR

var minFlashVersion = "9.0.0";		// minimal required version checked for Flash

var minShockwaveVersion = "10.1";	// minimal required version checked for Shockwave



var pluginPriority_QuickTime=2;		// Set the order of Priority to use in each plugin 

var pluginPriority_DevalVR=1;		// when Autodetect option is selected. Change 

var pluginPriority_Flash=4;			// the number or priority for each plugin

var pluginPriority_Java=5;

var pluginPriority_Spiv=6;

var pluginPriority_PangeaVR=3;



var enableSizeLimits=0;				// 0: disable  1: enable  (size limits for QT, DevalVR and Spi-v)

var enableSizeLimitsJava=0;			// 0: disable  1: enable  (size limits for Java)

var enableSizeLimitsFlash=0;		// 0: disable  1: enable  (size limits for Flash)

var maxViewerWidth="1280";

var maxViewerHeight="1024";

var maxViewerWidthJava="900";

var maxViewerHeightJava="700";

var maxViewerWidthFlash="900";

var maxViewerHeightFlash="700";



var enableSizeRatio=0;				// 0: disable size ratio    1: enable size ratio

var sizeRatio=6/3;					// maximum aspect ratio, horizontal/vertical proportions



var enableLineUnderPanorama=0;		//Enable an adviser line under panorama

var writeLineUnderQuickTime="";

var writeLineUnderDevalVR="";

var writeLineUnderJava="<font face='Verdana' size='1' color='#cdcdcd'> Install the DevalVR plugin for an optimal viewing experience <a href='http://www.devalvr.com/install/'>click here to install</a>, and <a href='javascript:reloadPage()'>click here after installing</a></font>";

var writeLineUnderFlash="<font face='Verdana' size='1' color='#cdcdcd'> Install the DevalVR plugin for an optimal viewing experience <a href='http://www.devalvr.com/install/'>click here to install</a>, and <a href='javascript:reloadPage()'>click here after installing</a></font>";

var writeLineUnderSpiV="";

var writeLineUnderPangeaVR="";



var installfont="<font face='Verdana' size='2' color='#FFFFFF'>";

var selectedlinkcolor="#333333";

var selectedlinkbgcolor="#AAAAFF";



var usePurePlayer=0;						//0: PTViewer is used as Java player  1: PurePlayer is used (write correct names below)

var archivePurePlayer='PurePlayer.jar';		//Copy this file in the same folder

var codePurePlayer='PurePlayer';



var detectvr_replacepage=0;		// 1 to use window.location.replace() function to open a new page for each viewer (if 1 then writecode parameters must be the name of HTML pages)



/////////////////////////////////////////////////////////////////////////////////////////////////



var isOpera=(navigator.userAgent.indexOf('Opera')!=-1);

var isIE=((navigator.appVersion.indexOf("MSIE") != -1) && !isOpera);

var isDOM=document.getElementById?1:0;

var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0;

var isIE4=isIE&&!isDOM?1:0;

var isWindows=(navigator.platform.indexOf('Win')!=-1);

var isMac=(navigator.platform.indexOf('Mac')!=-1 || navigator.platform.indexOf('PowerPC')!=-1);

var favoriteViewer=getCookie("panorama_viewer");

if(!favoriteViewer) favoriteViewer="DETECT";  //DEVALVR , QT, FLASH, JAVA, SPIV, PANGEAVR, or DETECT

var detectableWithVB = false;

var adviselineunderpano="";

var orgsizepluginx=new Array();

var orgsizepluginy=new Array();

var numberofplugins=0;

var sizepluginx;

var sizepluginy;

var writePluginVR=0;

var writeInstallPluginVR=0;

var reloadpagewhenchangeviewer=0;

var auxparameters=new Array();

auxparameters['devalvr']=new Array();

auxparameters['qt']=new Array();

auxparameters['java']=new Array();

auxparameters['flash']=new Array();

auxparameters['spiv']=new Array();





//Use 'viewerparameters' function to define different parameters for each viewer

//Use "devalvr", "qt", "java", "flash", "spiv" or "pangeavr" in first parameter

//for example: viewerparameters("devalvr","resize","0","autoplay","3");



function viewerparameters(viewer)

{

	auxparameters[viewer]=new Array();

	for(var i=1;i<arguments.length;i++) 

	{

		auxparameters[viewer][i-1]=arguments[i];

	}

}



function writecode(qtfile, devalvrfile, javafile, flashfile, spivfile, sizex, sizey)

{

	writecode2(qtfile, qtfile, devalvrfile, javafile, flashfile, spivfile, sizex, sizey);

}



function writecode2(qtfile, pangeafile, devalvrfile, javafile, flashfile, spivfile, sizex, sizey)

{

	var priority=new Array();

	var existfile=new Array();

	writePluginVR=0;

	writeInstallPluginVR=0;

	

	existfile[1]=(devalvrfile!=null && devalvrfile!="");

	existfile[2]=(qtfile!=null && qtfile!="");

	existfile[3]=(flashfile!=null && flashfile!="");

	existfile[4]=(javafile!=null && javafile!="");

	existfile[5]=(spivfile!=null && spivfile!="");

	existfile[6]=(pangeafile!=null && pangeafile!="");

	

	if((favoriteViewer=="DEVALVR" && (!existfile[1] || !isWindows))

	|| (favoriteViewer=="QT" && !existfile[2])

	|| (favoriteViewer=="JAVA" && !existfile[4]) 

	|| (favoriteViewer=="FLASH" && !existfile[3]) 

	|| (favoriteViewer=="SPIV" && !existfile[5])

	|| (favoriteViewer=="PANGEAVR" && !existfile[6]))

		favoriteViewer="DETECT";

	

	priority[1]=pluginPriority_DevalVR;

	priority[2]=pluginPriority_QuickTime;

	priority[3]=pluginPriority_Flash;

	priority[4]=pluginPriority_Java;

	priority[5]=pluginPriority_Spiv;

	priority[6]=pluginPriority_PangeaVR;

	

	if(favoriteViewer=="DETECT")

	{

		for(order=1;order<=6 && writePluginVR==0;order++)

		{

			for(n=1;n<=6;n++)

			{

				if(priority[n]==order && existfile[n] && IsPluginInstalled(n))

				{

					writePluginVR=n;

					break;

				}

			}

		}

	}

	else if(favoriteViewer=="DEVALVR" && isWindows)

	{

		if(IsPluginInstalled(1)) writePluginVR=1;

		else writeInstallPluginVR=1;

	}

	else if(favoriteViewer=="QT" && (isWindows || isMac))

	{

		if(IsPluginInstalled(2)) writePluginVR=2;

		else writeInstallPluginVR=2;

	}

	else if(favoriteViewer=="FLASH")

	{

		if(IsPluginInstalled(3)) writePluginVR=3;

		else writeInstallPluginVR=3;

	}

	else if(favoriteViewer=="JAVA") 

	{

		if(IsPluginInstalled(4)) writePluginVR=4;

		else writeInstallPluginVR=4;

	}

	else if(favoriteViewer=="SPIV" && (isWindows || isMac)) 

	{

		if(IsPluginInstalled(5)) writePluginVR=5;

		else writeInstallPluginVR=5;

	}

	else if(favoriteViewer=="PANGEAVR" && isMac) 

	{

		if(IsPluginInstalled(6)) writePluginVR=6;

		else writeInstallPluginVR=6;

	}

	

	if(writeInstallPluginVR==0 && writePluginVR==0)

	{

		if(isWindows) writeInstallPluginVR=1;	//Install DevalVR if there is not any plugin (fastest installation)

		else if(isMac) writeInstallPluginVR=2;	//Install QT always in Mac

		else writeInstallPluginVR=4;			//Install Java always in Linux

	} 

	

	adviselineunderpano="";

	if(enableLineUnderPanorama)

	{

		if(writePluginVR==1 && writeLineUnderDevalVR!="") adviselineunderpano=writeLineUnderDevalVR;

		else if(writePluginVR==2 && writeLineUnderQuickTime!="") adviselineunderpano=writeLineUnderQuickTime;

		else if(writePluginVR==3 && writeLineUnderFlash!="") adviselineunderpano=writeLineUnderFlash;

		else if(writePluginVR==4 && writeLineUnderJava!="") adviselineunderpano=writeLineUnderJava;

		else if(writePluginVR==5 && writeLineUnderSpiV!="") adviselineunderpano=writeLineUnderSpiV;

		else if(writePluginVR==6 && writeLineUnderPangeaVR!="") adviselineunderpano=writeLineUnderPangeaVR;

	}



	if(sizex=="") sizex="100%";

	if(sizey=="") sizey="94%";



	orgsizepluginx[numberofplugins]=sizex;

	orgsizepluginy[numberofplugins]=sizey;

	

	CalcLimits(sizex,sizey);

	sizex=sizepluginx;

	sizey=sizepluginy;



	idpano='PANORAMAID';

	if(numberofplugins>0) idpano+=numberofplugins;

	numberofplugins++;

	

	if(writePluginVR==1)

	{

		if(detectvr_replacepage) window.location.replace(devalvrfile); 

		else detecvr_embedPlugin('devalvr',devalvrfile,sizex,sizey,idpano,'5D2CF9D0-113A-476B-986F-288B54571614','http://www.devalvr.com/instalacion/plugin/devalocx.cab#version='+minDevalVRVersion,'application/x-devalvrx','http://www.devalvr.com/installation/','filter','0');

	}

	else if(writePluginVR==2)

	{

		if(detectvr_replacepage) window.location.replace(qtfile); 

		else detecvr_embedPlugin('qt',qtfile,sizex,sizey,idpano,'02BF25D5-8C17-4B23-BC80-D3488ABDDC6B','http://www.apple.com/qtactivex/qtplugin.cab','video/quicktime','http://www.apple.com/quicktime/download/','scale','tofit','autostart','true','kioskmode','true','controller', 'true', 'enablejavascript', 'true');

	}

	else if(writePluginVR==3)

	{

		if(detectvr_replacepage) window.location.replace(flashfile); 

		else detecvr_embedPlugin('flash',flashfile,sizex,sizey,idpano,'D27CDB6E-AE6D-11cf-96B8-444553540000','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab','application/x-shockwave-flash','http://www.macromedia.com/go/getflashplayer','bgcolor', '#f0f0f0', 'play', 'true', 'cache','true', 'autoplay','true','allowScriptAccess','always','allowFullScreen', 'true');

	}

	else if(writePluginVR==4)

	{

		if(detectvr_replacepage) window.location.replace(javafile); 

		else 

		{

			if(usePurePlayer==0) detecvr_embedPlugin('java','',sizex,sizey,idpano,'','','','','code','ptviewer.class','archive','ptviewer.jar','file',javafile,'fov','120','cursor','MOVE','showToolbar','true','imgLoadFeedback','false');

			else detecvr_embedPlugin('java','',sizex,sizey,idpano,'','','','','code',codePurePlayer,'archive',archivePurePlayer,'panorama',javafile,'optimizememory','true');

		}

	}

	else if(writePluginVR==5)

	{

		if(detectvr_replacepage) window.location.replace(spivfile); 

		else detecvr_embedPlugin('spiv','SPi-V.dcr',sizex,sizey,idpano,'166B1BCA-3F9C-11CF-8075-444553540000','http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version='+minShockwaveVersion,'application/x-director','http://www.macromedia.com/shockwave/download/','swURL',spivfile,'swStretchStyle','stage','swRemote','swContextMenu=\'FALSE\'','progress','true','logo','false');

	}

	else if(writePluginVR==6)

	{

		if(detectvr_replacepage) window.location.replace(pangeafile); 

		else detecvr_embedPlugin('pangeavr',pangeafile,sizex,sizey,idpano,'','','graphics/pangeavr2','http://www.pangeasoft.net/pano/plugin/downloads.html','maxtilt','0','mintilt','0','maxfov','0','minfov','0');

	}

	else if(writeInstallPluginVR==1)

	{

		var str='<div align=center><table border="0" cellpadding="0" cellspacing="0" style="WIDTH: ' + sizex + '; HEIGHT: ' + sizey + '" width="'+sizex+'"  height="'+sizey+'"><tr><td align="center" valign="middle">';

		str+='DevalVR plugin is required to see this content';

		str+='<br /><br /><a href="http://www.devalvr.com/install/">click here to install (250 KB, it only takes a few seconds)</a>';

		str+='</td></tr></table></div>';

		

		document.writeln(str);

		setTimeout("CheckPluginInstallation()",10000);

	}

	else

	{

		var pluginname,pluginurl;

		

		if(writeInstallPluginVR==2) 

		{

			pluginname="QuickTime Player"

			pluginurl="http://www.apple.com/quicktime/download/"

		}

		else if(writeInstallPluginVR==3) 

		{

			pluginname="Adobe Flash Player Version " + minFlashVersion + " or higher."

			pluginurl="http://www.adobe.com/go/getflash/"

		}

		else if(writeInstallPluginVR==4) 

		{

			pluginname="Java Software"

			pluginurl="http://java.com/en/download/"

		}

		else if(writeInstallPluginVR==5) 

		{

			pluginname="Shockwave Player"

			pluginurl="http://www.macromedia.com/shockwave/download"

		}

		else if(writeInstallPluginVR==6) 

		{

			pluginname="PangeaVR Player"

			pluginurl="http://www.pangeasoft.net/pano/plugin/downloads.html"

		}

		

		var str='<div align=center><table border="0" cellpadding="0" cellspacing="0" style="WIDTH: ' + sizex + '; HEIGHT: ' + sizey + '" width="'+sizex+'"  height="'+sizey+'"><tr><td align="center" valign="middle">';

		str+=installfont+'This content requires '+ pluginname +'.';

		str+='<br /><br /><a href="'+ pluginurl +'" target="_blank">click here to install '+ pluginname +'</a>';

		str+='</font></td></tr></table></div>';

		document.writeln(str);

	}



	if(writeInstallPluginVR==0)

	{

		window.onresize=OnResizeWindow;

		if(isWindows && isIE) 

			setTimeout("OnResizeWindow()",2000);

	}

}



function ShowViewerSelection(options)

{

	var optionviewer=new Array("DETECT","DEVALVR","QT","FLASH","JAVA","SPIV","PANGEAVR");

	var textviewer=new Array("Automatic detection","DevalVR","QuickTime","Flash","Java","Spi-V","PangeaVR");

	var osviewer=new Array(0,1,0,0,0,0,2);	//0:All  1:Windows  2:Mac



	options=options.toUpperCase();

	reloadpagewhenchangeviewer=(options.indexOf("RELOAD")!=-1);

	var vertical='';

	var str='';



	var combobox=(options.indexOf("COMBOBOX")!=-1);

	var links=(options.indexOf("LINKS")!=-1);



	if(options.indexOf("HORIZONTAL")==-1)

		vertical='<br />';

	

	viewer=getCookie("panorama_viewer");

	if(!viewer) viewer="DETECT";



	if(combobox)

	{

		str+='<select id="comboboxViewer" style="WIDTH: 160px" width=160 name="comboboxViewer" onchange="favoriteViewerChangedCombo()">';

	}

	for(n=0;n<7;n++)

	{

		if(options.indexOf(optionviewer[n])!=-1 && (osviewer[n]==0 || (osviewer[n]==1 && isWindows) || (osviewer[n]==2 && isMac)))

		{

			if(combobox) str+='<option value="'+optionviewer[n]+'" '+(viewer==optionviewer[n]?'selected="selected"':'')+'> '+textviewer[n]+'</option>';

			else if(links) str+='<a hRef="javascript:changeFavoriteViewer(\''+optionviewer[n]+'\');">'+(viewer==optionviewer[n]?('<font style="BACKGROUND-COLOR: '+selectedlinkbgcolor+'" color='+selectedlinkcolor+'>&nbsp;'):'')+textviewer[n]+(viewer==optionviewer[n]?'&nbsp;</font>':'')+'&nbsp;</a> '+vertical;

			else str+='<input id="radioViewer" value='+n+' type=radio name="radioViewer" OnClick="javascript:changeFavoriteViewer(\''+optionviewer[n]+'\');" '+(viewer==optionviewer[n]?'checked="checked"':'')+' />'+textviewer[n]+' '+vertical;

		}

	}

	if(combobox)

	{

		str+='</select><br />';

	}

	else if(vertical=='') str+='<br />';



	document.writeln('<font id="IDVIEWEROPTIONS">&nbsp;</font>');

	ref=getRef("IDVIEWEROPTIONS");

	if(ref)	ref.innerHTML=str;

}



function favoriteViewerChangedCombo()

{

	ref=getRef("comboboxViewer");

	if(ref) changeFavoriteViewer(ref.value);

}



function changeFavoriteViewer(viewer)

{

	if(favoriteViewer!=viewer)

	{

		setCookie("panorama_viewer",viewer);

		if(reloadpagewhenchangeviewer)

			window.location.reload();

	}

}



//Old version, it exist for compatibility with old pages

function writevrcode(movfile,javafile,flashfile,spivfile,width,height)

{

	var sizex=0,sizey=0;

	

	//Compatibility code, old versions of writevrcode only was 

	//qtfile and javafile parameters: writevrcode(movfile,javafile,width,height)

	

	var paramsize=2;

	for(var n=2;n<4;n++)

	{

		if(arguments[n]!=null)

		{

			var str=arguments[n].toString();

			str.toLowerCase();

			if(n==2)

			{

				if(str.indexOf(".swf")!=-1 || str=="") paramsize++;

				else flashfile="";

			}

			else if(n==3)

			{

				if(str.indexOf(".spv")!=-1 || str.indexOf(".xml")!=-1 || str.indexOf(".jpg")!=-1 || str=="")

				{

					if(paramsize==2) paramsize++;

					paramsize++;

				}

				else spivfile="";

			}

		}

	}

	if(arguments[paramsize]!=null)

		sizex=arguments[paramsize];

	if(arguments[paramsize+1]!=null)

		sizey=arguments[paramsize+1];

	

	var qtfile=movfile;	

	if(movfile.toLowerCase().indexOf(".mov")==-1)

		qtfile="";



	writecode(qtfile,movfile,javafile,flashfile,spivfile,sizex,sizey);

}



function CheckPluginInstallation()

{

	if(!isIE) navigator.plugins.refresh(false);



	if(IsPluginInstalled(1))

	{

		reloadPage();

	}

	else setTimeout("CheckPluginInstallation()",3000);

}



function IsPluginInstalled(numplugin)

{

	var installed=0;

	

	if(isWindows && isIE)

	{

		if(detectableWithVB)

		{

			if(numplugin==1)

			{

				installed=detectActiveXControl('DevalVRXCtrl.DevalVRXCtrl.1');

			}

			else if(numplugin==2)

			{

				installed=detectQuickTimeActiveXControl();

			}

			else if(numplugin==3)

			{

				installed =DetectFlashVer(); 

			}

			else if(numplugin==4)

			{

				installed=detectActiveXControl('JavaPlugin') && navigator.javaEnabled();

			}

			else if(numplugin==5)

			{

				var strswversion=minShockwaveVersion.split(".");

				var strshockwave="";

				do{

					strshockwave="SWCtl.SWCtl."+strswversion[0]+"."+strswversion[1]+".1";

					strswversion[1]++;

					if(strswversion[1]>9)

					{

						strswversion[1]=0;

						strswversion[0]++;

					}

					installed=detectActiveXControl(strshockwave);

				}while(installed==0 && strswversion[0]<20);

			}

		}

	}

	else

	{

		if(numplugin==1)

		{

			if(navigator.mimeTypes && navigator.mimeTypes["application/x-devalvrx"] && (isOpera || navigator.mimeTypes["application/x-devalvrx"].enabledPlugin))

			{

				var words = navigator.plugins["DevalVR 3D Plugin"].description.split(" ");

				var version = words[3].split(",");

				var min = minDevalVRVersion.split(",");

				installed=checkMinVersion(version,min,4);

			}	

		}

		else if(numplugin==2)

		{

			if(isMac) 

			{

				installed=1;

			}

			else

			{

				if(navigator.mimeTypes && navigator.mimeTypes["video/quicktime"] && (isOpera || navigator.mimeTypes["video/quicktime"].enabledPlugin))

				{

					for (var i = 0; i < navigator.plugins.length; i++)

					{

						if(navigator.plugins[i].name.indexOf("QuickTime Plug-in")!=-1)

						{

							var words = navigator.plugins[i].name.split(" ");

							if (words.length<3) installed=1;

							else

							{

								var version = words[2].split(".");

								var min = minQTVersion.split(".");

								installed=checkMinVersion(version,min,version.length);

							}

							break;

						}

					}

				}

			}

		}

		else if(numplugin==3)

		{

			installed = DetectFlashVer(); 

		}

		else if(numplugin==4)

		{

			if (isOpera || (navigator.mimeTypes && navigator.mimeTypes['application/x-java-applet'] && navigator.mimeTypes["application/x-java-applet"].enabledPlugin))

			{

				installed=navigator.javaEnabled();

			}

		}

		else if(numplugin==5)

		{

			if(navigator.mimeTypes && navigator.mimeTypes["application/x-director"] && (isOpera || navigator.mimeTypes["application/x-director"].enabledPlugin))

			{

				var description=navigator.plugins["Shockwave for Director"].description;

				var pos=description.indexOf("version");

				if (pos!=-1)

				{

					var words=description.substr(pos+8);

					var version = words.split(".");

					var min = minShockwaveVersion.split(".");

					installed=checkMinVersion(version,min,2);

				}

			}

		}

		else if(numplugin==6)

		{

			if(navigator.mimeTypes && navigator.mimeTypes["graphics/pangeavr2"] && (isOpera || navigator.mimeTypes["graphics/pangeavr2"].enabledPlugin))

			{

				installed=1;

			}

		}

	}

	return installed;

}



function OnResizeWindow()

{

	for(n=0;n<numberofplugins;n++)

	{

		CalcLimits(orgsizepluginx[n],orgsizepluginy[n]);



		if(n==0) ref=getRef("PANORAMAID");

		else ref=getRef("PANORAMAID"+n);

		if(ref!=null)

		{

			if(isIE || isOpera)

			{

				ref.style.width=sizepluginx;

				ref.style.height=sizepluginy;

			}

			else

			{	

				ref.width=sizepluginx;

				ref.height=sizepluginy;

			}

		}

	}

}



function checkMinVersion(version,min,num)

{

	var installed=0;

	for (var i = 0; i < num; i++)

	{

		if(parseInt(version[i])>parseInt(min[i])) 

		{

			installed=1;

			break;

		}

		else if(parseInt(version[i])<parseInt(min[i]))

		{

			break;

		}

		else if(parseInt(version[i])==parseInt(min[i]) && i==num-1)

			installed=1;

	}

	return installed;

}



function CalcLimits(sizex, sizey)

{

	var sizew,sizeh,limits;

	

	if(writePluginVR==4)

	{

		maxx=maxViewerWidthJava;

		maxy=maxViewerHeightJava;

		limits=enableSizeLimitsJava;

	}

	else if(writePluginVR==3)

	{

		maxx=maxViewerWidthFlash;

		maxy=maxViewerHeightFlash;

		limits=enableSizeLimitsFlash;

	}

	else

	{

		maxx=maxViewerWidth;

		maxy=maxViewerHeight;

		limits=enableSizeLimits;

	}



	if(sizex<0) sizex=getPageWidth()+parseInt(sizex);

	if(sizey<0) sizey=getPageHeight()+parseInt(sizey);

	

	if(limits || enableSizeRatio || adviselineunderpano!="")

	{

		sizex=sizex.toString();

		sizey=sizey.toString();

		pw=sizex.indexOf("px");

		if(pw!=-1) sizex=sizex.substring(0,pw);

		pw=sizey.indexOf("px");

		if(pw!=-1) sizey=sizey.substring(0,pw);

	

		sizew=getPageWidth();

		sizeh=getPageHeight();

	

		pw=sizex.indexOf("%");

		if(pw!=-1)

		{

			percent=sizex.substring(0,pw);

			sizex=(sizew*percent)/100;

		}

		pw=sizey.indexOf("%");

		if(pw!=-1)

		{

			percent=sizey.substring(0,pw);

			sizey=(sizeh*percent)/100;

		}

	

		sizex=parseInt(sizex);

		sizey=parseInt(sizey);



		if(limits)

		{

			if(sizex>maxx) sizex=maxx;

			if(sizey>maxy) sizey=maxy;

		}	

		if(enableSizeRatio)

		{

			x=sizey*sizeRatio;

			if(x<sizex)

			{

				sizex=x;

				if(limits && sizex>maxx) sizex=maxx;

			}

		}

		if(adviselineunderpano!="")

		{

			sizey-=16;

		}

	}



	sizepluginx=sizex;

	sizepluginy=sizey;



}



function reloadPage()

{

	if(!isIE) navigator.plugins.refresh(true);

	window.location.reload();

}



function getCookie(nombre)

{

	var dcookie=document.cookie;

	var cname=nombre+"=";

	var longitud=dcookie.length;

	var inicio=0;



	while(inicio<longitud)

	{

		var vbegin=inicio+cname.length;

		if(dcookie.substring(inicio,vbegin)==cname)

		{

			var vend=dcookie.indexOf(";",vbegin);

			if(vend==-1) vend=longitud;

			return unescape(dcookie.substring(vbegin,vend));

		}

		inicio=dcookie.indexOf(" ",inicio)+1;

		if(inicio==0) break;

	}

	return null;

}



function setCookie(name, value, expires)

{

	if(!expires)

	{ 

		expires=new Date();

		expires.setTime(expires.getTime()+(24*3600*1000*365));

	}

	var str=name+"="+escape(value)+"; expires=" + expires.toGMTString();



	document.cookie=str;

}



function getPageHeight()

{

	var ret,margintop=16,marginbottom=16;

	

	if(isIE) ret=document.body.clientHeight-document.body.topMargin-document.body.bottomMargin;

	else 

	{

		if(document.body.attributes.topmargin)

			margintop=document.body.attributes.topmargin.value;

		if(document.body.attributes.bottommargin)

			marginbottom=document.body.attributes.bottommargin.value;

		ret=window.innerHeight-margintop-marginbottom;

	}

	return ret;

}



function getPageWidth()

{

	var ret,marginleft=16,marginright=16;

	

	if(isIE) ret=document.body.clientWidth-document.body.leftMargin-document.body.rightMargin;

	else

	{

		if(document.body.attributes.leftmargin)

			marginleft=document.body.attributes.leftmargin.value;

		if(document.body.attributes.rightmargin)

			marginright=document.body.attributes.rightmargin.value;

		ret=window.innerWidth-marginleft-marginright;

	}

	return ret;

}



function IEGetSwfVer()

{

	flashVer=0;

		

	for(i=25;i>0 && flashVer==0;i--)

	{

		flashVer=VBGetSwfVer(i);

	}

	return flashVer;

}



// JavaScript helper required to detect Flash Player PlugIn version information

function JSGetSwfVer()

{

	// 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() 

{

  	if (isIE && isWindows && !isOpera) {

		versionStr = IEGetSwfVer();

	} else {

		versionStr = JSGetSwfVer();		

	}

	if (versionStr != 0 && versionStr != -1) 

	{

		if(isIE && isWindows && !isOpera) {

			tempArray         = versionStr.split(" ");

			tempString        = tempArray[1];

			versionArray      = tempString .split(",");				

		} 

		else 

		{

			versionArray      = versionStr.split(".");

		}

		var min=minFlashVersion.split(".");

		return checkMinVersion(versionArray,min,3);

	}

	else return false;

}



function writeParameters(parameters, auxparameters, IEparameters)

{

	str ='';

	for(i=0;i<auxparameters.length;i+=2) 

	{

		if(IEparameters)

			str+='  <param name="' + auxparameters[i] + '" value="' + auxparameters[i+1] + '" />';

		else

			str+=' ' + auxparameters[i] + '="' + auxparameters[i+1] + '"';

	}

	for(i=9;i<parameters.length;i+=2) 

	{

		var exists=0;

		for(j=0;j<auxparameters.length;j+=2) {

			if(auxparameters[j]==parameters[i]) exists=1;

		}

		if(exists==0)

		{

			if(IEparameters)

				str+='  <param name="' + parameters[i] + '" value="' + parameters[i+1] + '" />';

			else

				str+=' '+ parameters[i] + '="' + parameters[i+1] + '"';

		}

	}

	return str;

}



function detecvr_embedPlugin(plugin,sFile,sWidth,sHeight,id,classid,codebase,type,pluginspage)

{

	str='<div align=center>';

	if(classid!='' || plugin=='java')

	{

		if(plugin=='java') str+='<applet ';

		else str+='<object classid="clsid:'+classid+'" codebase="'+codebase+'"';

		str+=' id="'+id+'" style="WIDTH: ' + sWidth + '; HEIGHT: ' + sHeight + '" width="' + sWidth + '" height="' + sHeight + '" >';

	

		if(plugin!='java') str+='  <param name="src" value="' + sFile + '" />';

	

		str+=writeParameters(arguments,auxparameters[plugin],1);

	}

	if(type!='')

	{

		str+='<embed id="'+id+'" name="'+id+'" width="' + sWidth + '" height="' + sHeight + '"';

		str+='	pluginspage="'+pluginspage+'"';

		str+='	type="'+type+'"';

		str+='	src="' + sFile + '"';

		str+=writeParameters(arguments,auxparameters[plugin],0);

		str+='	/>';

	}

	if(classid!='') str+='</object>';

	if(plugin=='java') str+='</applet>';

	

	if(adviselineunderpano!="")

	{

		if(sWidth!="100%") str+='<br />';

		str+=adviselineunderpano;

	}

	str+='</div>';

	document.writeln(str);

}



// Here we write out the VBScript block for MSIE Windows

if (isWindows && isIE) 

{

    str='<script language="VBscript" type="text/vbscript">';

	

    str+='detectableWithVB = False \n';

    str+='If ScriptEngineMajorVersion >= 2 then \n';

    str+='  detectableWithVB = True \n';

    str+='End If \n';



    str+='Function detectActiveXControl(activeXControlName) \n';

    str+='  on error resume next \n';

    str+='  detectActiveXControl = False \n';

    str+='  If detectableWithVB Then \n';

    str+='		set pControl = CreateObject(activeXControlName) \n';

    str+='		If (IsObject(pControl)) then \n';

    str+='			detectActiveXControl = True \n';

    str+='		End If \n';

    str+='  End If \n';

    str+='End Function \n';



    str+='Function detectQuickTimeActiveXControl() \n';

    str+='  on error resume next \n';

    str+='  detectQuickTimeActiveXControl = False \n';

    str+='  If detectableWithVB Then \n';

    str+='    detectQuickTimeActiveXControl = False \n';

    str+='    hasQuickTimeChecker = false \n';

    str+='    Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1") \n';

    str+='    If IsObject(hasQuickTimeChecker) Then \n';

    str+='      If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then  \n';

    str+='        detectQuickTimeActiveXControl = True \n';

    str+='      End If \n';

    str+='    End If \n';

    str+='  End If \n';

    str+='End Function \n';



    str+='Function VBGetSwfVer(i) \n';

    str+='  on error resume next \n';

    str+='  Dim swControl, swVersion \n';

    str+='  swVersion = 0 \n';

    str+='  If detectableWithVB Then \n';

    str+='		set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i)) \n';

    str+='		If (IsObject(swControl)) then \n';

    str+='			swVersion = swControl.GetVariable("$version") \n';

    str+='		End If \n';

    str+='  End If \n';

    str+='  VBGetSwfVer = swVersion \n';

    str+='End Function \n';

    str+='</scr' + 'ipt>';

    

    document.writeln(str);

}





//////////////// Special functions to create dynamic pages

function getQueryVariable(variable) 

{

	var query = window.location.search.substring(1);

	var vars = query.split("&");

	for (var i=0;i< vars.length;i++) 

	{

		var pair = vars[i].split("=");

		if (pair[0] == variable) 

		{

			return pair[1];

		}

	} 

	return -1;

}	



function getRef(id) 

{

	return (isDOM ? document.getElementById(id) : (isIE4 ? document.all[id] : document.layers[id]));

}

function getStyle(id) 

{

	return (isNS4 ? getRef(id) : getRef(id).style);

}



var panoramadata=new Array();

var panoramanumdata=0;



function insertpanoramadata(name, panofile, title, description, date, jpgimage)

{

	var pano="pano"+panoramanumdata;

	panoramadata[pano]=name;

	panoramadata[name]=new Array();

	panoramadata[name]["movfile"]=panofile;

	panoramadata[name]["title"]=title;

	panoramadata[name]["description"]=description;

	panoramadata[name]["date"]=date;

	panoramadata[name]["jpgimage"]=jpgimage;

	

	panoramanumdata++;

}



function p2q_EmbedFlashSoundControl(sndFile) {

	document.writeln('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"'); 

	document.writeln(' codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0"');

	document.writeln(' width="200" height="15" align="right">');

	document.writeln('<param name="movie" value="xspf_player_slim.swf?song_url=' + sndFile + '&autoplay=true&repeat_playlist=true&song_title=Turn Off Sound Here">');	                  

	document.writeln('<param name="quality" value="high">');

	document.writeln('<param name="bgcolor" value="#FFFFFF">');

	document.writeln('<embed src="xspf_player_slim.swf?song_url=' + sndFile + '&autoplay=true&repeat_playlist=true&song_title=Turn Off Sound Here"');

	document.writeln(' quality="high" bgcolor="#FFFFFF" name="movie"');

	document.writeln(' type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"');

	document.writeln(' align="right" height="15" width="200"/>');

	document.writeln('</object>');

}



///////////////////


