function checkBlank(s){if (s.value==null || s.value==""){return true;};var j=0;for(var i=0; i<s.value.length; i++){var c = s.value.charAt(i);if (c==' ')j+=1;};if (j==s.value.length){return true;};for(var i=0; i<s.value.length; i++){var c = s.value.charAt(i);if ((c=='\n') || (c=='\t'))return true;};return false;}
function isNumber(nub){/* only allow 0-9 be entered, plus any values passed */ var checkOK = "0123456789."; var checkStr = nub; var allValid = true; var decPoints = 0; var allNum = ""; for (i = 0; i < checkStr.value.length; i++) { ch = checkStr.value.charAt(i); for (j = 0; j < checkOK.length; j++) if (ch == checkOK.charAt(j)) break; if (j == checkOK.length) { allValid = false; break; } } return allValid; }
function leftTrim(sString){ while (sString.substring(0,1) == ' '){ sString = sString.substring(1, sString.length); } return sString; }
function rightTrim(sString){ while (sString.substring(sString.length-1, sString.length) == ' '){ sString = sString.substring(0,sString.length-1); } return sString; }
function trimAll(sString){ while (sString.substring(0,1) == ' '){ sString = sString.substring(1, sString.length); } while (sString.substring(sString.length-1, sString.length) == ' '){sString = sString.substring(0,sString.length-1);} return sString; }
function strUppar(s){
  strupr=s.value; strupr=strupr.toUpperCase(); s.value = strupr;
}
function dopagevalidation(){
  if(document.getElementById("pagenumber").value==""){alert('Please Enter Page Number'); document.getElementById('divMessage').innerHTML = "Please Enter Page Number"; document.getElementById("pagenumber").focus(); return false; };
  if(document.getElementById("drivercode").value==""){alert('Invalid Driver Code'); document.getElementById('divMessage').innerHTML = "Invalid Driver Code"; document.getElementById("pagenumber").focus(); return false; };
  if(document.getElementById("drivername").value==""){alert('Invalid Driver Name'); document.getElementById('divMessage').innerHTML = "Invalid Driver Name"; document.getElementById("pagenumber").focus(); return false; };
  if(document.getElementById("vehiclenumber").value==""){alert('Invalid Vehicle Number'); document.getElementById('divMessage').innerHTML = "Invalid Vehicle Number"; document.getElementById("pagenumber").focus(); return false; };
  if(document.getElementById("opendate").value==""){alert('Invalid Opening Date'); document.getElementById('divMessage').innerHTML = "Invalid Opening Date"; document.getElementById("pagenumber").focus(); return false; };
  if(document.getElementById("openkm").value==""){alert('Invalid Opening KM'); document.getElementById('divMessage').innerHTML = "Invalid Opening KM"; document.getElementById("pagenumber").focus(); return false; };
  return true;
}
function days_between(date1, date2) {
    // The number of milliseconds in one day
    var ONE_DAY = 1000 * 60 * 60 * 24
    // Convert both dates to milliseconds
    var date1_ms = date1.getTime()
    var date2_ms = date2.getTime()
    // Calculate the difference in milliseconds
    var difference_ms = Math.abs(date1_ms - date2_ms)
    // Convert back to days and return
    return Math.round(difference_ms/ONE_DAY)
}

function popup(url)      //Centered popup window
{
 var width  = 300;
 var height = 200;
 var left   = (screen.width  - width)/2;
 var top    = (screen.height - height)/2;
 var params = 'width='+width+', height='+height;
 params += ', top='+top+', left='+left;
 params += ', directories=no';
 params += ', location=no';
 params += ', menubar=no';
 params += ', resizable=no';
 params += ', scrollbars=no';
 params += ', status=no';
 params += ', toolbar=no';
 newwin=window.open(url,'windowname5', params);
 if (window.focus) {newwin.focus()}
 return false;
}

function popup(url)      //Fullscreen popup window
{
 params  = 'width='+screen.width;
 params += ', height='+screen.height;
 params += ', top=0, left=0'
 params += ', fullscreen=yes';

 newwin=window.open(url,'windowname4', params);
 if (window.focus) {newwin.focus()}
 return false;
}

	function sleep(delay){ var start = new Date().getTime(); while (new Date().getTime() < start + delay); }
	function chr(int){ var A = new Array('\x00','\x01','\x02','\x03','\x04','\x05','\x06','\x07','\x08','\x09','\x0A','\x0B','\x0C','\x0D','\x0E','\x0F','\x10','\x11','\x12','\x13','\x14','\x15','\x16','\x17','\x18','\x19','\x1A','\x1B','\x1C','\x1D','\x1E','\x1F','\x20','\x21','\x22','\x23','\x24','\x25','\x26','\x27','\x28','\x29','\x2A','\x2B','\x2C','\x2D','\x2E','\x2F','\x30','\x31','\x32','\x33','\x34','\x35','\x36','\x37','\x38','\x39','\x3A','\x3B','\x3C','\x3D','\x3E','\x3F','\x40','\x41','\x42','\x43','\x44','\x45','\x46','\x47','\x48','\x49','\x4A','\x4B','\x4C','\x4D','\x4E','\x4F','\x50','\x51','\x52','\x53','\x54','\x55','\x56','\x57','\x58','\x59','\x5A','\x5B','\x5C','\x5D','\x5E','\x5F','\x60','\x61','\x62','\x63','\x64','\x65','\x66','\x67','\x68','\x69','\x6A','\x6B','\x6C','\x6D','\x6E','\x6F','\x70','\x71','\x72','\x73','\x74','\x75','\x76','\x77','\x78','\x79','\x7A','\x7B','\x7C','\x7D','\x7E','\x7F','\x80','\x81','\x82','\x83','\x84','\x85','\x86','\x87','\x88','\x89','\x8A','\x8B','\x8C','\x8D','\x8E','\x8F','\x90','\x91','\x92','\x93','\x94','\x95','\x96','\x97','\x98','\x99','\x9A','\x9B','\x9C','\x9D','\x9E','\x9F','\xA0','\xA1','\xA2','\xA3','\xA4','\xA5','\xA6','\xA7','\xA8','\xA9','\xAA','\xAB','\xAC','\xAD','\xAE','\xAF','\xB0','\xB1','\xB2','\xB3','\xB4','\xB5','\xB6','\xB7','\xB8','\xB9','\xBA','\xBB','\xBC','\xBD','\xBE','\xBF','\xC0','\xC1','\xC2','\xC3','\xC4','\xC5','\xC6','\xC7','\xC8','\xC9','\xCA','\xCB','\xCC','\xCD','\xCE','\xCF','\xD0','\xD1','\xD2','\xD3','\xD4','\xD5','\xD6','\xD7','\xD8','\xD9','\xDA','\xDB','\xDC','\xDD','\xDE','\xDF','\xE0','\xE1','\xE2','\xE3','\xE4','\xE5','\xE6','\xE7','\xE8','\xE9','\xEA','\xEB','\xEC','\xED','\xEE','\xEF','\xF0','\xF1','\xF2','\xF3','\xF4','\xF5','\xF6','\xF7','\xF8','\xF9','\xFA','\xFB','\xFC','\xFD','\xFE','\xFF'); return A[int%256]; }
	function strReplace(mInput){ mInput = mInput.replace("",""); mInput = mInput.replace("OK",""); mInput = mInput.replace("",""); return mInput; }
	var port = 1; var isportok = 0;  var refreshcnt = 0;
	function initconnection(){
		if(document.MSComm1){			if(isportok==0) healthcheckup();
	           if(isportok==0){ return false;} //else{alert("Please check the device...."); alert("Device is ready to read...");}
			MSComm1.CommPort = port;
			MSComm1.Settings = "19200,N,8,1";
			MSComm1.RThreshold = 1
			MSComm1.RTSEnable = true
			MSComm1.SThreshold = 1
			if(MSComm1.PortOpen==true) MSComm1.PortOpen = false;
			MSComm1.PortOpen = true;
			MSComm1.Output = "DTSR" + chr(10) + chr(13);
			sleep(100);
			MSComm1.Output = "DTGU" + chr(10) + chr(13);
			sleep(100);
			MSComm1.Output = "DTBR"  + chr(8) + chr(2) +  "ÿÿÿÿÿÿ"+ chr(10) + chr(13);
			sleep(100);
			return true
		}
		if(document.RFIDComm1){
			readername=RFIDComm1.getReaderName();
			if(readername.indexOf('SCL010')>0){
				RFIDComm1.Interval=0;
				RFIDComm1.Enabled=false;
	       		document.getElementById("rfidreadername").value = RFIDComm1.getReaderName();
				//RFIDComm1.Interval=100;
				//RFIDComm1.Enabled=true;
				RFIDComm1.Interval=0;
				RFIDComm1.Enabled=false;
				//RFIDComm1.Interval=100;
				//RFIDComm1.Enabled=true;
				return true;
	        }
	    }
	}
	function healthcheckup(){
		if(document.MSComm1){
			try{
				MSComm1.CommPort = port; //document.getElementById("portnumber").value;
				MSComm1.Settings = "19200,N,8,1";
				MSComm1.PortOpen = true;
				MSComm1.Output = "DTHC" + chr(10) + chr(13);
				sleep(150);
				readinput =  strReplace(MSComm1.Input);
				if(readinput=="OK"){
					isportok = 1;
				}else{
					MSComm1.PortOpen = false;
					if(isportok==0){port+=1;if(port<=18){healthcheckup();}else{if(refreshcnt<=2){refreshcnt+=1;port=0;healthcheckup();}else{return false;}}}}
				MSComm1.PortOpen = false;
				return true;
			}catch(err){
				//alert("Device is not connected");
				if(isportok==0){port+=1; if(port<=18){healthcheckup();}else{if(refreshcnt<=2){refreshcnt+=1;port=0;healthcheckup();}else{return false;}}}
			}
	   }
	}
	function Receive(){
		readinput = MSComm1.Input;
		if(readinput.substring(0,readinput.indexOf('OK'))<=0){
  			readinput=readinput.substring(11);
			document.getElementById("pagenumber").value=readinput; getinformation(0);
		}
	}
	function getData(){
    	var readinput=RFIDComm1.CardConnect("FFB0002200");
    	document.getElementById("pagenumber").value= readinput.substring(0,5); getinformation(0);
    	document.getElementById("pagenumber").focus();
      	RFIDComm1.Interval=0;
      	RFIDComm1.Enabled=false;
    }
