// Flex Biometria integração NBioBSP Nitgen

DEVICE_AUTO_DETECT = 255;
var objNBioBSP;
var objDevice;
var objExtraction;
var nomeFlexApp = 'Bio';
 
function initNBioBSP(){
	try {
		objNBioBSP = new ActiveXObject('NBioBSPCOM.NBioBSP.1');
		objDevice = objNBioBSP.Device;
		objExtraction = objNBioBSP.Extraction;

		objDevice.Open(DEVICE_AUTO_DETECT);
		err = objDevice.ErrorCode;	
		if ( err != 0 ){
			getFlexApp(nomeFlexApp).retornoInitNBioBSP(false,0,0,0,0,0,0)
		}

		getFlexApp(nomeFlexApp).retornoInitNBioBSP((err == 0),
								   objNBioBSP.MajorVersion,
								   objNBioBSP.MinorVersion,
								   objExtraction.DefaultTimeout,
								   objExtraction.SecurityLevel,
								   objExtraction.EnrollImageQuality,
								   objExtraction.VerifyImageQuality);
		objDevice.Close(DEVICE_AUTO_DETECT);
	} catch(e){
		getFlexApp(nomeFlexApp).errorNBioBSP(0,e.message);
	}
}

function closeNBSP(){
	objDevice.Close(DEVICE_AUTO_DETECT);
	objExtraction = 0;
	objDevice = 0;		
	objNBioBSP = 0;	
}

function verificarLiveFinger(){
	try{
		objDevice.Open(DEVICE_AUTO_DETECT);
		getFlexApp(nomeFlexApp).retornoLiveFinger((objDevice.CheckFinger != 0));
		objDevice.Close(DEVICE_AUTO_DETECT);	
	} catch(e) {
		getFlexApp(nomeFlexApp).errorNBioBSP(0,e.message);
	}
}

function capturar(){	
	var err;
	var firTextData = "";
	
	try{
		objDevice.Open(DEVICE_AUTO_DETECT);
		objExtraction.WindowStyle = 1; 
		objExtraction.Capture();
		err = objExtraction.ErrorCode;
		if ( err != 0 ){
			getFlexApp(nomeFlexApp).errorNBioBSP(err,"Falha na Captura");
		} else {
			firTextData = objExtraction.TextEncodeFIR;			
		}
		objDevice.Close(DEVICE_AUTO_DETECT);
		getFlexApp(nomeFlexApp).retornoTextEncodedFIR(firTextData);
	} catch(e){
		getFlexApp(nomeFlexApp).errorNBioBSP(0,e.message);
		return false;
	}	
	
	return true;
}

function getFlexApp(appName){
  if (navigator.appName.indexOf ("Microsoft") !=-1){
    return window[appName];
  } else{
    return document[appName];
  }
}

function regist(){	
	var err, payload;
	var result = false;
	var firTextData;
	
	try{
		DEVICE_AUTO_DETECT	= 255;
		
		var objNBioBSP = new ActiveXObject('NBioBSPCOM.NBioBSP.1');
		var objDevice = objNBioBSP.Device;
		var objExtraction = objNBioBSP.Extraction;		
		
		// Open device. [AUTO_DETECT]
		// You must open device before enroll.
		objDevice.Open(DEVICE_AUTO_DETECT);

		err = objDevice.ErrorCode;	// Get error code	
		if ( err != 0 )		// Device open failed
		{
			alert('Device open failed !');
		}
		else
		{
			// Enroll user's fingerprint.
			objExtraction.Enroll(payload);
			err = objExtraction.ErrorCode;	// Get error code
		
			if ( err != 0 )		// Enroll failed
			{
				alert('Registration failed ! Error Number : [' + err + ']');
			}
			else	// Enroll success
			{
				// Get text encoded FIR data from NBioBSP module.
				var firTextData = objExtraction.TextEncodeFIR;
				alert('Registration success !');
				result = true;
			}
			
			objDevice.Close(DEVICE_AUTO_DETECT);
		}

		objExtraction = 0;
		objDevice = 0;
		objNBioBSP = 0;		
	}catch(e) {
		alert(e.message);
		return(false);
	}
	
	if(result){
		getFlexApp('Bio').ret(firTextData);
	}
	return result;
}
