//
// validation utilities
//
function trim(s) {
  return s.replace(/^\s+|\s+|\s+$/g, '');
}
function validAccount(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                      // Digits only
    var pattern = /\d{13,16}/ ;                        // Digits only
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
	} else {
        fld.style.background = 'yellow'; 
    } 
    return valid;
}
function validAmount(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                    // not normal character set
	var pattern = /^\d{0,15}\.\d{2}$/; // whole numbers, decimals
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
    } else {
        fld.style.background = 'yellow'; 
    }
    return valid;    
}
function validDate(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                      // Digits only
    var pattern = /\d{2}-\d{2}-\d{2}/ ;            // xx-xx-xx
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
	} else {
        fld.style.background = 'yellow'; 
    } 
    return valid;
}
function validDigits(fld,cnt) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                      // Digits only
    var pattern = /\d/ ;                        // Digits only
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if  ((fld.value.match(pattern)) && (fld.value.length == cnt)) {
        fld.style.background = 'white';
		valid = 1 ;
	} else {
        fld.style.background = 'yellow'; 
    } 
    return valid;
}
function validEmail(fld) {
    var valid = 0;
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (fld.value == "") {
        fld.style.background = 'Yellow';
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
    } else {
        fld.style.background = 'White';
		valid = 1 ;
    }
    return valid ;
}
function validName(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ; // allow letters, numbers, and underscores
    var tfld = trim(fld.value) ;

	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld)) {
        fld.style.background = 'yellow'; 
    } else {
        fld.style.background = 'white';
		valid = 1 ;
    } 
    return valid;
}
function validNumber(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                  // normal character set
	var pattern = /^\d{1,5}$/; // numbers and dash
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
    } else {
        fld.style.background = 'yellow';
    } 
    return valid;    
}
function validPhone(fld) {
    var valid = 0 ;
	var notnumber = /\D/ ;
    var stripped = fld.value.replace(/[xX\(\)\.\-\ ]/g, ''); 
    if (fld.value == "") {
        fld.style.background = 'Yellow';
	} else if (notnumber.test(stripped)) {
        fld.style.background = 'Yellow';	
	} else if (isNaN(parseInt(stripped))) {
        fld.style.background = 'Yellow';
    } else if (!(stripped.length >= 10)) {
        fld.style.background = 'Yellow';
    } else  {
        fld.style.background = 'White';
        valid = 1 ;
	}
    return valid ;

}
function validString(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ; // allow letters, numbers, and underscores
    var tfld = trim(fld.value) ;

	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld)) {
        fld.style.background = 'yellow'; 
    } else {
        fld.style.background = 'white';
		valid = 1 ;
    } 
    return valid;
}
function validTime(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                      // Digits only
    var pattern = /\d{2}:\d{2}[P|A]+M/ ;           // xx:xxAA
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow';
		fld.value = "xx:xxPM or xx:xxAM" ;
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
	} else {
        fld.style.background = 'yellow'; 
    } 
    return valid;
}
function validZip(fld) {
    var valid = 0 ;
    var illegalChars = /\W/ ;                  // normal character set
	var pattern = /^\d{5}$|^\d{5}-\d{4}$/; // numbers and dash
    var tfld = trim(fld.value) ;
	if (tfld.length < 1) {
        fld.style.background = 'yellow'; 
    } else if (illegalChars.test(tfld.value)) {
        fld.style.background = 'yellow'; 
    } else if (fld.value.match(pattern)) {
        fld.style.background = 'white';
		valid = 1 ;
    } else {
        fld.style.background = 'yellow';
    } 
    return valid;    
}


function validPriceList(fld) {
	var stat = true ;
	var tfld ;
	doc = document.form1 ;
    tfld =trim(fld.value) ;
	if (tfld.length < 5) {
	    fld.style.background = "yellow" ;
		stat = 0 ;
	} else {
	    fld.style.background = 'white' ;
		stat = 1 ;
	} ;
    return stat ;
}
function validChecked(fld) {
    var doc = document.form1 ;
	var stat ;
	if (fld.checked == false) {
	    fld.style.background = "yellow" ;
		stat = 0 ;
	
	} else {
	    fld.style.background = "white" ;
		stat = 1
	}
	return stat ;
}
function validFile(fld) {
    var stat = 1 ;
    if (fld.value.length < 1) {
	    fld.style.background = 'yellow';
		stat = 0 ;
	} else {
	    fld.style.background = "white" ;
	}
	return stat ;
}
function validSelect(fld) {
    var stat = 1 ;
    if (fld.selectedIndex == 0) {
	    fld.style.background = 'yellow';
		stat = 0 ;
	} else {
	    fld.style.background = "white" ;
	}
	return stat ;
}
function fieldMatch(fld1,fld2, state) {
	if ((fld1.value == null) || (fld1.value == "")) {
	    fld2.style.background = (state == 0) ? "yellow" : "white" ;
	    return state;
	} else if ((fld2.value == null) || (fld2.value == "")) {
	    fld2.style.background = (state == 0) ? "yellow" : "white" ;
	    return state ;
	}
	if (fld1.value != fld2.value) {
	    fld2.style.background = "yellow" ;
	    fld2.focus() ;
	    return 0 ;
	}
	fld2.style.background = "white" ;
	return 1 ;
}

function preloadImages(){
    if(document.images){
        if(!document.imageArray) document.imageArray = new Array();
        var i,j = document.imageArray.length, args = preloadImages.arguments ;
        for( i = 0 ; i < args.length ; i++ ) {
            if ( args[i].indexOf("#") != 0 ) {
                document.imageArray[j] = new Image;
                document.imageArray[j++].src = args[i];
            }
        }
    }
}
