var hasAcrobat = false;

// for ie
var acrobat=new Object();

acrobat.installed=false;
acrobat.version='0.0';

if (navigator.plugins && navigator.plugins.length)
{
	for (var x = 0, l = navigator.plugins.length; x < l; ++x)
	{
		if (navigator.plugins[x].description.indexOf('Adobe Acrobat') != -1)
		{
			acrobat.version=parseFloat(navigator.plugins[x].description.split('Version ')[1]);
			if (acrobat.version.toString().length == 1) acrobat.version+='.0';
			acrobat.installed=true;
			break;
		}
	}
}
else if (window.ActiveXObject)
{
	for (x=2; x<10; x++)
	{
		try
		{
			oAcro=eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");
			if (oAcro)
			{
				acrobat.installed=true;
				acrobat.version=x+'.0';
			}
		}
		catch(e) {}
	}

	try
	{
		oAcro4=new ActiveXObject('PDF.PdfCtrl.1');
		if (oAcro4)
		{
			acrobat.installed=true;
			acrobat.version='4.0';
		}
	}
	catch(e) {}

	try
	{
		oAcro7=new ActiveXObject('AcroPDF.PDF.1');
		if (oAcro7)
		{
			acrobat.installed=true;
			acrobat.version='7.0';
		}
	}
	catch(e) {}

}


// for ff 
// initialize global variables
var detectableWithVB = false;
var pluginFound = false;


function goURL(daURL) {
	// if the browser can do it, use replace to preserve back button
	if(javascriptVersion1_1) {
		window.location.replace(daURL);
	} else {
		window.location = daURL;
	}
	return;
}

function redirectCheck(pluginFound, redirectURL, redirectIfFound) {
	// check for redirection
	if( redirectURL && ((pluginFound && redirectIfFound) || 
		(!pluginFound && !redirectIfFound)) ) {
		// go away
		goURL(redirectURL);
		return pluginFound;
	} else {
		// stay here and return result of plugin detection
		return pluginFound;
	}        
}

function canDetectPlugins() {
	if( detectableWithVB || (navigator.plugins && navigator.plugins.length > 0) ) {
		return true;
	} else {
		return false;
	}
}

function detectPDF(redirectURL, redirectIfFound) {
	pluginFound = detectPlugin('Adobe','Acrobat'); 
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('PDF.PdfCtrl.5');
	}
	// check for redirection
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectFlash(redirectURL, redirectIfFound) {
	pluginFound = detectPlugin('Shockwave','Flash'); 
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('ShockwaveFlash.ShockwaveFlash.1');
	}
	// check for redirection
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectDirector(redirectURL, redirectIfFound) { 
	pluginFound = detectPlugin('Shockwave','Director'); 
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('SWCtl.SWCtl.1');
	}
	// check for redirection
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectQuickTime(redirectURL, redirectIfFound) {
	pluginFound = detectPlugin('QuickTime');
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = detectQuickTimeActiveXControl();
	}
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectReal(redirectURL, redirectIfFound) {
	pluginFound = detectPlugin('RealPlayer');
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = (detectActiveXControl('rmocx.RealPlayer G2 Control') ||
					   detectActiveXControl('RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)') ||
					   detectActiveXControl('RealVideo.RealVideo(tm) ActiveX Control (32-bit)'));
	}        
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectWindowsMedia(redirectURL, redirectIfFound) {
	pluginFound = detectPlugin('Windows Media');
	// if not found, try to detect with VisualBasic
	if(!pluginFound && detectableWithVB) {
		pluginFound = detectActiveXControl('MediaPlayer.MediaPlayer.1');
	}
	return redirectCheck(pluginFound, redirectURL, redirectIfFound);
}

function detectPlugin() {
	// allow for multiple checks in a single pass
	var daPlugins = detectPlugin.arguments;
	// consider pluginFound to be false until proven true
	var pluginFound = false;
	// if plugins array is there and not fake
	if (navigator.plugins && navigator.plugins.length > 0) {
		var pluginsArrayLength = navigator.plugins.length;
		// for each plugin...
		for (pluginsArrayCounter=0; pluginsArrayCounter < pluginsArrayLength; pluginsArrayCounter++ ) {
			// loop through all desired names and check each against the current plugin name
			var numFound = 0;
			for(namesCounter=0; namesCounter < daPlugins.length; namesCounter++) {
				// if desired plugin name is found in either plugin name or description
				if( (navigator.plugins[pluginsArrayCounter].name.indexOf(daPlugins[namesCounter]) >= 0) || 
					(navigator.plugins[pluginsArrayCounter].description.indexOf(daPlugins[namesCounter]) >= 0) ) {
					// this name was found
					numFound++;
				}   

			}
			// now that we have checked all the required names against this one plugin,
			// if the number we found matches the total number provided then we were successful
			if(numFound == daPlugins.length) {
				pluginFound = true;
				// if we've found the plugin, we can stop looking through at the rest of the plugins
				break;
			}
		}
	}
	return pluginFound;
} // detectPlugin


// Here we write out the VBScript block for MSIE Windows
if ((navigator.userAgent.indexOf('MSIE') != -1) && (navigator.userAgent.indexOf('Win') != -1)) {
	document.writeln('<script language="VBscript">');

	document.writeln('\'do a one-time test for a version of VBScript that can handle this code');
	document.writeln('detectableWithVB = False');
	document.writeln('If ScriptEngineMajorVersion >= 2 then');
	document.writeln('  detectableWithVB = True');
	document.writeln('End If');

	document.writeln('\'this next function will detect most plugins');
	document.writeln('Function detectActiveXControl(activeXControlName)');
	document.writeln('  on error resume next');
	document.writeln('  detectActiveXControl = False');
	document.writeln('  If detectableWithVB Then');
	document.writeln('     detectActiveXControl = IsObject(CreateObject(activeXControlName))');
	document.writeln('  End If');
	document.writeln('End Function');

	document.writeln('\'and the following function handles QuickTime');
	document.writeln('Function detectQuickTimeActiveXControl()');
	document.writeln('  on error resume next');
	document.writeln('  detectQuickTimeActiveXControl = False');
	document.writeln('  If detectableWithVB Then');
	document.writeln('    detectQuickTimeActiveXControl = False');
	document.writeln('    hasQuickTimeChecker = false');
	document.writeln('    Set hasQuickTimeChecker = CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")');
	document.writeln('    If IsObject(hasQuickTimeChecker) Then');
	document.writeln('      If hasQuickTimeChecker.IsQuickTimeAvailable(0) Then ');
	document.writeln('        detectQuickTimeActiveXControl = True');
	document.writeln('      End If');
	document.writeln('    End If');
	document.writeln('  End If');
	document.writeln('End Function');

	document.writeln('</scr' + 'ipt>');
}

function Browser2() {

  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isIE = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = parseFloat(ua.substr(i + s.length));
    return;
  }

  // Treat any other "Gecko" browser as NS 6.1.

  s = "Gecko";

  if ((i = ua.indexOf(s)) >= 0) {
    this.isNS = true;
    this.version = 6.1;
    return;
  }
}

var browser2 = new Browser2();

if (browser2.isIE)
{
	var hasAcrobat = acrobat.installed;
}
else 
{
	var hasAcrobat = detectPDF();
}

// Cursor coordinate functions
var myX, myY, xyOn, myMouseX, myMouseY;
xyOn = true;

function getXYPosition(e) {
	myMouseX=(e||event).clientX;
	myMouseY=(e||event).clientY;
	if (document.documentElement.scrollTop > 0) {
		myMouseY = myMouseY + document.documentElement.scrollTop;
	}
	/*if (xyOn) {
		alert("X is " + myMouseX + "\nY is " + myMouseY);
	}*/
	if (!hasAcrobat && xyOn) 
	{
		document.getElementById("tool_tip1").style.display = "block";
		document.getElementById("tool_tip1").style.left = myMouseX - 130 + "px";
		document.getElementById("tool_tip1").style.top = myMouseY + 10 + "px";
	}
}
function toggleXY(id) {
	xyOn = !xyOn;
	document.getElementById(id).blur();
	return false;
}
function hideXY() {
	try {
		document.getElementById('tool_tip1').style.display = "none";
	} catch(e) {}
}
