
var bSupported = false;

if (window.RegExp) {
	var s = "a";
	var re = new RegExp(s);
	if (re.test(s)) bSupported = true;
}


if(document.layers){origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}

function SelectThis(item,val) {
	for (var i=0; i < item.length; i++) {
		if (item[i].value==val) {
			item.selectedIndex=i;
		}
	}
}



function AllowedChars( str, charset ) {
	var s = str.toLowerCase();
    var i;
    for( i=0; i<s.length; i++ ) {
        if( charset.indexOf(s.charAt(i))==-1 ) {
            return false;
        }
    }
    return true;
}

function IsBlank(item,errMsg) {
	if (item.value.length==0) {
		item.focus();
		alert(errMsg);
		return true;
	}
}

function IsLong(frmInput,errMsg,intLength) {
	if (frmInput.value.length > intLength) {
		alert(errMsg);
		frmInput.select();
		frmInput.focus();
		return true;	
	}
}

function IsShort(frmInput,errMsg,intLength) {
	if (frmInput.value.length < intLength) {
		alert(errMsg);
		frmInput.select();
		frmInput.focus();
		return true;	
	}
}

function IsNotSelected(item,errMsg) {
	if (item.selectedIndex == 0 ){
		item.focus();
		alert(errMsg);
		return true;
	}	
}

function NoCheckboxSelected(item) {
	// returns false if checkboxes in a group have been selected.
	var isFalse = "false"
	var strErrorMsg = "You have not selected an option for: " + display_name(item[0]);
	for (var i=0; i < item.length; i++) {
		if (item[i].checked) {
			return false;
		}
	}
	item[0].focus();
	alert(strErrorMsg);
	return true;
}

function RadioNotSelected(item,strErrorMsg) {
	for (var i=0; i < item.length; i++) {
		if (item[i].checked) {
			return false;
		}
	}
	item[0].focus();
	alert(strErrorMsg);
	return true;
}

function IsNotInteger(item,err) {
	var intValue = parseInt(item.value);  //Convert to integer base 10.
	if (isNaN(intValue)) {
		item.focus();
		alert(err);
		return true;
		}
	else {
		item.value = intValue;		
	}
	return false;
}

function IsNotNumber(item,err) {
	var intValue = parseInt(item.value);			// Convert to integer.
	var realValue = parseFloat(item.value);		// Convert to floating point.
	if (isNaN(intValue) || isNaN(realValue)) {
		//item.focus();
		alert(err);
		return true;
	}
	return false;
}

function IsValidEmail(item,sErr) {
	var str = item.value;
	if (bSupported) {
		if (!(/^[\w\-]{2,}@[a-zA-Z\d\-]+\.[a-zA-Z]+\.{0,1}[a-zA-Z]{2,3}$/.test(str))) {
			alert(sErr);
			item.select();
			item.focus();
			return false;
		}
		return true;
	} else {
		if (!(str.indexOf(".") > 2) && (str.indexOf("@") > 0))  {
			alert(sErr);
			item.select();
			item.focus();
			return false;					
		}
	}	
}

function IsNotEqual(item1,item2,errMsg) {
	if (item1.value != item2.value) {
		alert(errMsg);
		item2.select();
		item2.focus();
		return true;		
	}
	return false;
}

function checkCardNumWithMod10(cardNum) {
	var i;
	var cc = new Array(16);
	var checksum = 0;
	var validcc;

	for (i = 0; i < cardNum.length; i++) {
		cc[i] = Math.floor(cardNum.substring(i, i+1));
	}

	for (i = (cardNum.length % 2); i < cardNum.length; i+=2) {
		var a = cc[i] * 2;
		if (a >= 10) {
			var aStr = a.toString();
			var b = aStr.substring(0,1);
			var c = aStr.substring(1,2);
			cc[i] = Math.floor(b) + Math.floor(c);
		} else {
			cc[i] = a;
		}
	}

	for (i = 0; i < cardNum.length; i++) {
		checksum += Math.floor(cc[i]);
	}

	validcc = ((checksum % 10) == 0);

	return validcc;
	}

function cleanCardNum(cardNum) {
	var i;
	var ch;
	var newCard = "";

	i = 0;
	while (i < cardNum.length) {
		ch = cardNum.substring(i, i+1);
		if ((ch >= "0") && (ch <= "9")) {
			newCard += ch;
		} else {
			if ((ch != " ") && (ch != "-")) {
				alert("The card number contains invalid characters.\n\nPlease enter numbers only.");
				return "";
			}
		}
		i++;
	}
	return newCard;
}

