function vIsBlank(str) { var re = /^[\s]*$/; return (re.test(str)); }

function vSelectedVal(formField) {
	var val = "";
	if(formField.type == 'select-multiple') {
		for(i=0;i<formField.length;i++) {
			if(formField[i].selected) {
				if(val != "") { val += ",";}
				val += formField[i].value;
			}
		}
	} else {
		val = formField.options[formField.selectedIndex].value;
	}
	return val;
}

function vRadioVal(formField) {
	var val = "";
	if(!formField.length || formField.length == 1) {
		if(formField.checked) { val = formField.value; }
	} else {
		for(i=0;i<formField.length;i++) {
			if(formField[i].checked) { val = formField[i].value; break; }
		}
	}
	return val;
}

function vCheckBoxVals(formField) {
	var val = "";
	if(!formField.length || formField.length == 1) {
		if(formField.checked) { val = formField.value; }
	} else {
		for(i=0;i<formField.length;i++) {
			if(formField[i].checked) {
				if(val != "") { val += ",";}
				val += formField[i].value;
			}
		}
	}
	return val;
}

function vInvalidDateCheck(string) {
	var year = string.substr(0,4);
	if (year == 0) { return true; }
	var month = string.substr(5,2);
    if (month < 1 || month > 12) { return true; }
	var day = string.substr(8,2);
	if (day < 1 || day > 31) { return true; }
	if (day > 30 && (month == "04" || month == "06" || month == "09" || month == "11")) { return true; }
	var leap = 0;
	if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) { leap = 1; }
    if (month == 2 && leap == 1 && day > 29) { return true; }
    if (month == 2 && leap != 1 && day > 28) { return true; }
	return false;
}

function vEurodateToODBC(eurodate) {
	var re = /^(\d{2})\/(\d{2})\/(\d{4})$/;
	return eurodate.replace(re, "$3-$2-$1");
}

function vIsEurodate(string) {
	var re = /^\d{2}\/\d{2}\/\d{4}$/;
	if(!re.test(string)) { return false; }
	else if(vInvalidDateCheck(vEurodateToODBC(string))) { return false; } else { return true; }
}

function vIsEmailAddress(string) {
	var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
	var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,6}|[0-9]{1,3})(\]?)$/; // valid
	if(reg1.test(string) || !reg2.test(string)) { return false; } else { return true; }
}

function vIsNumber(string) {
	var re = /^\-?[\d]+(\.[\d]+)?$/;
	if(!re.test(string)) { return false; } else { return true; }
}
