function Exception(msg){
	if(msg){this.message = msg;} else {this.message = ""}
}

function CableNotDetectedException(msg){if(msg){this.message = msg;} else {this.message = "No Cable has been detected."}}; CableNotDetectedException.prototype = new Exception();
function DeviceNotDetectedException(msg){if(msg){this.message = msg;} else {this.message = "No device has been detected."}}; DeviceNotDetectedException.prototype = new Exception();
function BladeNotDetectedException(msg){if(msg){this.message = msg;} else {this.message = "No blade cartridge has been detected."}}; DeviceNotDetectedException.prototype = new Exception();
function DetectionErrorException(msg){if(msg){this.message = msg;} else {this.message = "An error occured detecting your device."}}; DetectionErrorException.prototype = new Exception();
function PluginTimeOutException(msg){if(msg){this.message = msg;} else {this.message = "The plug-in has timed out."}}; PluginTimeOutException.prototype = new Exception();

function InvalidPluginException(msg){if(msg){this.message = msg;} else {this.message = "Provided plug-in is invalid. Please re-install."}}; InvalidPluginException.prototype = new Exception();
function ActiveXNotSupportedException(msg){if(msg){this.message = msg;} else {this.message = "ActiveX is not supported by your browser."}}; ActiveXNotSupportedException.prototype = new Exception();
function Weblink5NotFoundException(msg){if(msg){this.message = msg;} else {this.message = "Weblink 5 has not been detected on this computer."}}; Weblink5NotFoundException.prototype = new Exception();
function WeblinkNotRespondingException(msg){if(msg){this.message = msg;} else {this.message = "Weblink is not responding."}}; WeblinkNotRespondingException.prototype = new Exception();
function WeblinkNotDetectedException(msg){if(msg){this.message = msg;} else {this.message = "No weblink plugin has been detected."}}; WeblinkNotDetectedException.prototype = new Exception();

function InvalidDeviceException(msg){if(msg){this.message = msg;} else {this.message = "";}}; InvalidDeviceException.prototype = new Exception();
function InvalidFirmwareException(msg){if(msg){this.message = msg;} else {this.message = "";}}; InvalidFirmwareException.prototype = new Exception();
function InvalidConfigurationException(msg){ this.message = msg;}; InvalidConfigurationException.prototype = new Exception();

function FlashException(msg){if(msg){this.message = msg;} else {this.message = "";}}; FlashException.prototype = new Exception();
function WriteConfException(msg){if(msg){this.message = msg;} else {this.message = "";}}; WriteConfException.prototype = new Exception();
function ReadException(msg){ this.message = msg;}; ReadException.prototype = new Exception();

function InvalidCTRException(msg){if(msg){this.message = msg;} else {this.message = "InvalidCTRException";}}; InvalidCTRException.prototype = new Exception();
function FailedToLoadOSException(msg){if(msg){this.message = msg;} else {this.message = "FailedToLoadOSException";}}; FailedToLoadOSException.prototype = new Exception();
function MACFailedException(msg){if(msg){this.message = msg;} else {this.message = "MACFailedException";}}; MACFailedException.prototype = new Exception();
function InvalidBlockSizeException(msg){if(msg){this.message = msg;} else {this.message = "InvalidBlockSizeException";}}; InvalidBlockSizeException.prototype = new Exception();
function UnlockFailedException(msg){if(msg){this.message = msg;} else {this.message = "UnlockFailedException";}}; UnlockFailedException.prototype = new Exception();
function FailedToReadFeatureExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToReadFeatureExceiption";}}; FailedToReadFeatureExceiption.prototype = new Exception();
function FailedToWriteFeatureExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToWriteFeatureExceiption";}}; FailedToWriteFeatureExceiption.prototype = new Exception();
function FailedToReadKeyExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToReadKeyExceiption";}}; FailedToReadKeyExceiption.prototype = new Exception();
function FailedToWriteKeyExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToWriteKeyExceiption";}}; FailedToWriteKeyExceiption.prototype = new Exception();
function FailedToReadStarterFeatureExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToReadStarterFeatureExceiption";}}; FailedToReadStarterFeatureExceiption.prototype = new Exception();
function FailedToWriteStarterFeatureExceiption(msg){if(msg){this.message = msg;} else {this.message = "FailedToWriteStarterFeatureExceiption";}}; FailedToWriteStarterFeatureExceiption.prototype = new Exception();

