﻿// define used variables
var shiftPressedHiddenValue;
var ctrlPressedHiddenValue;
var altPressedHiddenValue;

// helper function
function GetBoolString(value)
{
	var result = value ? 'true' : 'false';
	return result;
}

// main function
function on_SpecialKeyDetectorMouseDown(eventArguments)
{
	var _ctrlPressed = false;
	var _altPressed = false;
	var _shiftPressed = false;

	if (parseInt(navigator.appVersion) > 3)
	{
		var arguments = navigator.appName == "Netscape" ? eventArguments : event;

		if (navigator.appName == "Netscape" && parseInt(navigator.appVersion) == 4)
		{
			// NETSCAPE 4 CODE
			var state = (arguments.modifiers + 32).toString(2).substring(3, 6);
			_shiftPressed =(state.charAt(0) == "1");
			_ctrlPressed =(state.charAt(1) == "1");
			_altPressed =(state.charAt(2) == "1");
		}
		else
		{
			// NEWER BROWSERS [CROSS-PLATFORM]
			_shiftPressed = arguments.shiftKey;
			_altPressed = arguments.altKey;
			_ctrlPressed = arguments.ctrlKey;
		}
	}

	shiftPressedHiddenValue.value = GetBoolString(_shiftPressed);
	ctrlPressedHiddenValue.value = GetBoolString(_ctrlPressed);
	altPressedHiddenValue.value = GetBoolString(_altPressed);
}
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();