var photodexPresenterMinVersion = "4,50,0,2929";

var photodexPresenterInstallerBase = "http://files.photodex.com/presenter/";
var photodexPresenterInstaller = photodexPresenterInstallerBase + "pxsetup.exe";

var photodexPresenterImageBase = "http://images.photodex.com/presenter_controls/";
var photodexPresenterImageInstall = photodexPresenterImageBase + "presenter-install.png";
var photodexPresenterImageUpgrade = photodexPresenterImageBase + "presenter-upgrade.png";
var photodexPresenterImageReload = photodexPresenterImageBase + "presenter-reload.png";

function NetscapePluginIsInstalled() {

	for (i=0; i< navigator.plugins.length; i++) {
		if (navigator.plugins[i].name.indexOf("Photodex Presenter") + 1) {
			return 1;
		}
	}
	return 0;
}

function NetscapePluginNeedsUpgrade (requiredVersion) {
	/* Build a version number from the required version string */
	rv = requiredVersion.split(",");
	rvNum = parseInt(rv[0])*1000000 + parseInt(rv[1])*10000 + parseInt(rv[2])*100 + parseInt(rv[3]);
	
	/* Find the plugin */
	for (i=0; i< navigator.plugins.length; i++) {
		if (navigator.plugins[i].name.indexOf("Photodex Presenter") + 1) {
			break;
		}
	}
	/* Sanity Check */
	if (i == navigator.plugins.length) {
		return 1;
	}
	
	/* Split the description to find the version string */
	desc = navigator.plugins[i].description.split(" ");
	
	/* Build a version number from the required version string */
	iv = desc[desc.length-1].split(",");
	ivNum = parseInt(iv[0])*1000000 + parseInt(iv[1])*10000 + parseInt(iv[3]);	
	return ivNum < rvNum;
}

function PhotodexTriggerDownloadTimer() {
		document.getElementById("photodexPresenterImage").setAttribute("src", photodexPresenterImageReload);
}

var photodexTriggerDownloadState = 0;

function PhotodexTriggerDownload() {
	switch (photodexTriggerDownloadState) {
	case 0:
		setTimeout('PhotodexTriggerDownloadTimer()', 500);
		photodexTriggerDownloadState=1;
		window.location = photodexPresenterInstaller;
		break;
	case 1:
		navigator.plugins.refresh(true);
		self.location.reload();		
		break;
	}
}

function PresenterObject(objectType,objectName,pxURL,width,height,showControls,bgcolor) {
	if (!bgcolor) { 
		bgcolor = document.bgColor; 
	}
	if (navigator.userAgent.toLowerCase().indexOf('msie') + 1) {
		document.write('<object id="'+objectName+'" align=center width="'+width+'" height="'+height+'"classid="clsid:CB50428B-657F-47DF-9B32-671F82AA73F7" codebase="http://www.photodex.com/pxplay.cab#version='+photodexPresenterMinVersion+'"><param name="showURL" value="'+pxURL+'"><param name="showControls" value="'+showControls+'"><param name="bgcolor" value="'+bgcolor+'"><param name="pageURL" value="'+document.URL+'"></object>');
	} else {
		navigator.plugins.refresh(false);
		if (!NetscapePluginIsInstalled()) {
	  		document.write('<table border=0 width='+width+' height='+height+'><tr valign=center><td align=center><a href="#" onClick="PhotodexTriggerDownload();"><img id="photodexPresenterImage" src="'+photodexPresenterImageInstall+'" border=0></a></td></tr></table>');
		} else if (NetscapePluginNeedsUpgrade(photodexPresenterMinVersion)) {
	  		document.write('<table border=0 width='+width+' height='+height+'><tr valign=center><td align=center><a href="#" onClick="PhotodexTriggerDownload();"><img id="photodexPresenterImage" src="'+photodexPresenterImageUpgrade+'" border=0></a></td></tr></table>');
		} else {
			document.write('<embed id="'+objectName+'" name="'+objectName+'" align=center width="'+width+'" height="'+height+'" type="application/x-photodex-presenter" pluginspage="'+photodexPresenterInstaller+'" showURL="'+pxURL+'" bgcolor="'+bgcolor+'" pageURL="'+document.URL+'" showControls="'+showControls+'"></embed>');
		}
	}
}

function PhotodexPostInstall(url, status) {
	if (status == 0) {
		navigator.plugins.refresh(true);
		self.location.reload();
	}
}

function PhotodexObject (objectType,objectName,pxURL,width,height,bgcolor) {
	// Backwards Compatibility
	PresenterObject(objectType,objectName,pxURL,width,height,true,bgcolor);
}

function PresenterControls(controlName,width) {
	// Backwards Compatilibity - stub
}

