﻿// JScript File
function nonfractioninput(event)
{
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (((keyCode >= 48) && (keyCode <= 57))  || (keyCode == 8))
        return true;
	else
	    return false;
}

function decimalinput(event)
{
    var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
	if (((keyCode >= 48) && (keyCode <= 57)) || (keyCode == 46))
        return true;
	else
	    return false;
}

function SelectAllCheckboxChanged(checked, field){
    var i;
    for (i=0; i < document.forms[0].elements.length; i++){
	    if ((document.forms[0].elements[i].type == 'checkbox') && 
		    (document.forms[0].elements[i].name.indexOf(field) > -1)){				
			    document.forms[0].elements[i].checked = checked;
	    }
    }
}
function SelectCheckboxChanged(checked,field){
    var i;
    for (i=0; i < document.forms[0].elements.length; i++){
	    if ((document.forms[0].elements[i].type == 'checkbox') && 
		    (document.forms[0].elements[i].name.indexOf(field) > -1) &&
		    (document.forms[0].elements[i].disabled == false)){
				document.forms[0].elements[i].checked = checked;
	    }
    }
}


// enable multiple function to be called by onload event
function addOnloadEvent(fnc){
  if ( typeof window.addEventListener != "undefined" )
    window.addEventListener( "load", fnc, false );
  else if ( typeof window.attachEvent != "undefined" ) {
    window.attachEvent( "onload", fnc );
  }
  else {
    if ( window.onload != null ) {
      var oldOnload = window.onload;
      window.onload = function ( e ) {
        oldOnload( e );
        window[fnc]();
      };
    }
    else
      window.onload = fnc;
  }
}

//file name regular expression checking
function isValidFilename(field){
    if( field != null && field.value != ''){
        var filename = field.value;
        if( filename.lastIndexOf('\\') > 0 ){
            filename = filename.substring(filename.lastIndexOf('\\') +1, filename.length);
        }else if( filename.lastIndexOf('/') > 0 ){
            filename = filename.substring(filename.lastIndexOf('/') +1, filename.length);
        }
        var reg = /^[a-zA-Z0-9][^\/\\:*?""<>|]+\.[a-zA-Z0-9]+/
        var regexp = new RegExp(reg);
        var m = regexp.exec(filename);
        if(m == null) return false;
    }
    return true;
}

// [START] validate vehicle registration no
var arrIndexTbl1 = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');

var arrVRNTblA = new Array(new Array(12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17),
								new Array(2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7),
								new Array(11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16),
								new Array(1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6),
								new Array(10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15),
								new Array(0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5),
								new Array(9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14),
								new Array(18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4),
								new Array(8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13),
								new Array(17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3),
								new Array(7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12),
								new Array(16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2),
								new Array(6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11),
								new Array(15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1),
								new Array(5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10),
								new Array(14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0),
								new Array(4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9),
								new Array(13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18),
								new Array(3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8),
								new Array(12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17),
								new Array(2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7),
								new Array(11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16),
								new Array(1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6),
								new Array(10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15),
								new Array(0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5),
								new Array(9,13,17,2,6,10,14,18,3,7,11,15,0,4,8,12,16,1,5,9,13,17,2,6,10,14));

var arrVRNTblB = new Array(new Array(0,4,8,12,16,1,5,9,13,17),
							    new Array(5,9,13,17,2,6,10,14,18,3),
							    new Array(10,14,18,3,7,11,15,0,4,8),
							    new Array(15,0,4,8,12,16,1,5,9,13),
							    new Array(1,5,9,13,17,2,6,10,14,18),
							    new Array(6,10,14,18,3,7,11,15,0,4),
							    new Array(11,15,0,4,8,12,16,1,5,9),
							    new Array(16,1,5,9,13,17,2,6,10,14),
							    new Array(2,6,10,14,18,3,7,11,15,0),
							    new Array(7,11,15,0,4,8,12,16,1,5));

var arrVRNTblC = new Array(new Array(0,2,4,6,8,10,12,14,16,18),
							    new Array(3,5,7,9,11,13,15,17,0,2),
							    new Array(6,8,10,12,14,16,18,1,3,5),
							    new Array(9,11,13,15,17,0,2,4,6,8),
							    new Array(12,14,16,18,1,3,5,7,9,11),
							    new Array(15,17,0,2,4,6,8,10,12,14),
							    new Array(18,1,3,5,7,9,11,13,15,17),
							    new Array(2,4,6,8,10,12,14,16,18,1),
							    new Array(5,7,9,11,13,15,17,0,2,4),
							    new Array(8,10,12,14,16,18,1,3,5,7));

var arrIndexTbl2 = new Array('Z','Y','X','U','T','S','R','P','M','L','K','J','H','G','E','D','C','B','A');

var arrVRNTblD = new Array(new Array(0,19,38,57,76),
								new Array(1,20,39,58,77),
								new Array(2,21,40,59,78),
								new Array(3,22,41,60,79),
								new Array(4,23,42,61,80),
								new Array(5,24,43,62,81),
								new Array(6,25,44,63,82),
								new Array(7,26,45,64,83),
								new Array(8,27,46,65,84),
								new Array(9,28,47,66,85),
								new Array(10,29,48,67,86),
								new Array(11,30,49,68,87),
								new Array(12,31,50,69,88),
								new Array(13,32,51,70,89),
								new Array(14,33,52,71,90),
								new Array(15,34,53,72,91),
								new Array(16,35,54,73,92),
								new Array(17,36,55,74,93),
								new Array(18,37,56,75,94));
								
function GetArrIndex(cLetter) {
	var i;
	
	for (i=0; i<26; i++) {
		if (arrIndexTbl1[i] == cLetter.toUpperCase()) {
			return i;
		}
	}
}		
				
function GetCombinedValue(sInput) {
	var iTotal=0, i;
	var iValueA=0, iValueB=0, iValueC=0;
	var sSubString='', sNewString='';
	
	sSubString = sInput.substring(2, sInput.length-1);
	if (sSubString.length < 4) {
		for (i=0; i<4-sSubString.length; i++) {
			sNewString = sNewString.concat('0');
		}
		sSubString = sNewString.concat(sSubString);
	}

	iValueA = arrVRNTblA[GetArrIndex(sInput.charAt(0))][GetArrIndex(sInput.charAt(1))];
	iValueB = arrVRNTblB[parseInt(sSubString.charAt(0))][parseInt(sSubString.charAt(1))];
	iValueC = arrVRNTblC[parseInt(sSubString.charAt(2))][parseInt(sSubString.charAt(3))];

	iTotal = iValueA + iValueB + iValueC;
	
	return iTotal;
}

function ValidateVRN(sInput) {
	var iCalValue=0;
	var i, j;
	var cCheckChar;
	var sVRNum='';
	var nresult=0;
	var iidx=0;
	//determine number of characters before the numbers
	iidx = sInput.length;
	if (iidx < 3 ) //less than 3 characters
	{
		return 0;
	}

	if (!isNaN(sInput.charAt(0))) //First character is number
	{
		return 0;
	}
	if (!isNaN(sInput.charAt(1))) //second character is number
	{
		return 0;
	}		
	if (isNaN(sInput.charAt(2))) // prefix 3 cahracter 
	{
		sVRNum = sInput.substring(1, sInput.length);
	}				
	else
	{ 
		sVRNum = sInput;
	}
	/*
	if (sInput.charAt(0).toUpperCase() == 'S') {	// strip the 'S' from VRN
		sVRNum = sInput.substring(1, sInput.length);
	}
	else {
		sVRNum = sInput;
	}
	*/
	if ((sVRNum.charCodeAt(0) > 64 && sVRNum.charCodeAt(0) < 123) &&
		(sVRNum.charCodeAt(1) > 64 && sVRNum.charCodeAt(1) < 123)) {
	
		iCalValue = GetCombinedValue(sVRNum);
		cCheckChar = sVRNum.substring(sVRNum.length-1, sVRNum.length).toUpperCase();
	
		for (i=0; i<arrVRNTblD.length; i++) {
			for (j=0; j<arrVRNTblD[i].length; j++) {
				if(iCalValue == arrVRNTblD[i][j]) {
					if(cCheckChar == arrIndexTbl2[i]) {
						//alert('Registion is valid!');
						nresult = 1;
					}
					else {
						//alert('Registion is not valid!');
						nresult = 0;
					}
				}
			}
		}
	}
	else {
		//alert('"' + sInput + '" cannot be validated!');
		nresult = 0;
	}	
	return nresult;
}
// [END] validate vehicle registration no


function isEmptyField( oField ){
	var sValue;
	var bObject;
	
	if (typeof oField == "string") {
		sValue = oField;
		bObject = false;
	}
	else if (typeof oField == "object"){
		sValue = oField.value;
		bObject = true;
	}
	else {
		return false;
	}
	
	for (var i=0; i<sValue.length; i++) {
		if (sValue.charAt(i) != " ") {
			return false;
		}
	}
	
	return true;
}

function IsDateAfter(startDate, endDate){

	//CompareDate
	var dtCh= "-";
	var pos1, pos2;
	var strDay, strMonth, strYear;
	var iMonth;
	
	if( isEmptyField(startDate) || isEmptyField(endDate) ) return true;

	//start date
	pos1=startDate.indexOf(dtCh)	
	pos2=startDate.indexOf(dtCh,pos1+1)	
	strDay=startDate.substring(0,pos1)	
	strMonth=startDate.substring(pos1+1,pos2)	
	
	iMonth = convertMonth(strMonth);
	
	strYear=startDate.substring(pos2+1)
	
	if (strDay.length == 2)	{
		if (parseInt(strDay.charAt(0)) == 0)
			strDay = strDay.charAt(1)
	}
	/*if (strMonth.length == 2)	{
		if (parseInt(strMonth.charAt(0)) == 0)
			strMonth = strMonth.charAt(1)
	}
	*/
	var dt1 = new Date( parseInt(strYear), parseInt(iMonth)-1, parseInt(strDay) );

	//end date
	pos1=endDate.indexOf(dtCh)
	pos2=endDate.indexOf(dtCh,pos1+1)
	strDay=endDate.substring(0,pos1)
	strMonth=endDate.substring(pos1+1,pos2)
	
	iMonth = convertMonth(strMonth);
	
	strYear=endDate.substring(pos2+1)

	//does not work if date starts with 0. Have to remove the 0
	if (strDay.length == 2)	{
		if (parseInt(strDay.charAt(0)) == 0)
			strDay = strDay.charAt(1)
	}
	/*if (strMonth.length == 2)	{
		if (parseInt(strMonth.charAt(0)) == 0)
			strMonth = strMonth.charAt(1)
	}
*/
	var dt2 = new Date( parseInt(strYear), parseInt(iMonth)-1, parseInt(strDay) );

	if (dt1 > dt2){	
			return false;
	}	
	return true;
}

function convertMonth( mth){
	var iMonth;

	switch (mth){
		case 'Jan':
			iMonth = 1;
			break
		case 'Feb':
			iMonth = 2;
			break
		case 'Mar':
			iMonth = 3;
			break
		case 'Apr':
			iMonth = 4;
			break
		case 'May':
			iMonth = 5;
			break
		case 'Jun':
			iMonth = 6;
			break
		case 'Jul':
			iMonth = 7;
			break
		case 'Aug':
			iMonth = 8;
			break
		case 'Sep':
			iMonth = 9;
			break
		case 'Oct':
			iMonth = 10;
			break
		case 'Nov':
			iMonth = 11;
			break
		case 'Dec':
			iMonth = 12;
			break
	}
	return iMonth;
}


function IsValidDate( oDay, oMonth, oYear, varAlert ) {
	if ( (typeof oDay != "object") || (typeof oMonth != "object") || (typeof oYear != "object") ) {
		return false;
	}
	
	var monthDays = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
	var iDay = oDay.options[oDay.selectedIndex].value;
	var iMonth = oMonth.options[oMonth.selectedIndex].value;
	var iYear = oYear.options[oYear.selectedIndex].value;
	
	if (iDay == '' && iMonth == '' & iYear == '') return true;
	
	if (iDay == '' || iMonth == '' || iYear == '') {
		if (varAlert != '' ) {
			alert(varAlert);
			oDay.focus();
		}
		return false;
	}
	
	if (iDay > 0 && iDay <= monthDays[iMonth-1] ){
	
		if (iMonth == 2) {
			var ly = iYear/4 == parseInt(iYear/4);
			if(ly && (iYear/100 == parseInt(iYear/100)) && (iYear/400 != parseInt(iYear/400)) )
				ly = false;
			if(!ly && (iDay > 28)) {
				if (varAlert != '' ) {
					alert(varAlert);
					oDay.focus();
				}
				return false;
			}
			
		}
		
		 return true
	}
	
	if (varAlert != '' ) {
		alert(varAlert);
		oDay.focus();
	}
	
	return false;
}

function back2Gallery()
{

    window.location = "http://localhost/ppsl/showroom/gallery4.aspx"
}
function startB2GalleryTimer(){
    setTimeout("back2Gallery()",300000)
}