﻿function window.onload() {
    OpenPort();
    
    if(USBHID.PortOpen == false) {
        document.getElementById('modConnectReader').style.display = 'inline';
    }
    else {
        document.getElementById('modConnectReader').style.display = 'none';
        GetSerialNumber();
        GetReaderMode();
        GetSecurityLevel();
        GetFirmware();
        
        ClosePort();
        
        var pageState;
        pageState = document.getElementById('hfState').value;
        
        if(pageState == '') {
            document.getElementById('btnGetCompatibleDemos').click();
        }
    }
}

function window.onunload() {
    ClosePort();
}



function OpenPort() {
    if(USBHID.PortOpen == false) {
        USBHID.PortOpen = true;
    }
}

function ClosePort() {
    if(USBHID.PortOpen == true) {
        USBHID.PortOpen = false;
    }
}



function GetReaderMode() {
    var rmIn, rmOut, rmSend, readerMode;
    
    rmIn = '0010';
    rmOut = '';
    rmSend = USBHID.USBSwipe_Command(rmIn,rmOut);
    rmOut = USBHID.SwipeCommandOutput;
    
    if(rmOut != '') {
        if(rmOut == '00') {
            readerMode = 'HID';
        }
        else if(rmOut == '01') {
            readerMode = 'Keyboard';
        }
        else {
            readerMode = 'Unknown';
        }
    }
    else {
        readerMode = 'Unavailable';
    }
    
    document.getElementById('hfMode').value = readerMode;
    //document.getElementById('txtMode').value = readerMode;
}

function GetSecurityLevel() {
    var slIn, slOut, slSend, securityLevel;
    
    slIn = '15';
    slOut = '';
    slSend = USBHID.USBSwipe_Command(slIn,slOut);
    slOut = USBHID.SwipeCommandOutput;
    
    if(slOut != '') {
        if(slOut.length == 2) {
            securityLevel = slOut.substring(1);
        }
        else {
            securityLevel = 'Unknown';
        }
    }
    else {
        securityLevel = 'Unavailable';
    }
    
    document.getElementById('hfSecurityLevel').value = securityLevel;
}

function GetFirmware() {
    var fwIn, fwOut, fwSend, firmware;
    
    fwIn = '0000';
    fwOut = '';
    fwSend = USBHID.USBSwipe_Command(fwIn,fwOut);
    fwOut = USBHID.SwipeCommandOutput;
    
    if(fwOut != '') {
        fwOut = fwOut.replace(/ /g,'');
        
        if(fwOut.length > 16) {
            fwOut = fwOut.substring(1);
            fwOut = fwOut.replace(/3/g,'');
            fwOut = fwOut.substring(0,8);
            firmware = fwOut;
        }
        else {
            firmware = 'Unknown';
        }
    }
    else {
        firmware = 'Unavailable';
    }
    
    document.getElementById('hfFirmware').value = firmware;
}

function GetSerialNumber() {
    var snIn, snOut, snSend, securityLevel;
    
    snIn = '0003';
    snOut = '';
    snSend = USBHID.USBSwipe_Command(snIn,snOut);
    snOut = USBHID.SwipeCommandOutput;
    
    document.getElementById('hfSerialNumber').value = snOut.replace(/ /g,'');
}