String.prototype.trim = function() {
	return this.replace(/^\s*|\s*$/g, "");
}

function isEmpty(str)	{
	var re = /^\s*$/;
	return re.test(str);
}

function isVaildEmail(str) {
	var re = /^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,4}(\.[a-z]{2}){0,2})$/i;
	return re.test(str);
}

function isValidZip(str) {
	var re = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
	return re.test(str);
}

function isVaildPhone(str) {
	var re = /((\(\d{3,4}\)|\d{3,4}-)\d{4,9}(-\d{1,5}|\d{0}))|(\d{4,12})/;
	return re.test(str);
}

function isOptionSelected(select) {
	if (select == "") {
		return false;
	} else {
		return true;
	}
}

function formatPhone(fieldId) {
	var phone = document.getElementById(fieldId);
	var digits = phone.value.replace(/[^0-9]/ig, '');
	phone.value = digits;
	if (digits.length) {
		if (digits.length == 10) {
			phone.value = '(' + digits.substring(0, 3) + ') ' + digits.substring(3, 6) + '-' + digits.substring(6, 10);
		} else {
			alert("You must enter a valid phone number including area code.");
			phone.value = "";
			phone.focus();
		}
	}
}

function formatZip(fieldId) {
	var zip = document.getElementById(fieldId);
	var digits = zip.value.replace(/[^0-9]/ig, '');
	zip.value = digits;
	if (digits.length) {
		if (digits.length == 9) {
			zip.value = digits.substring(0, 5) + '-' + digits.substring(5, 9);
		} else if (digits.length == 5) {
			zip.value = digits
		} else {
			alert("You must enter a valid zip code.");
			zip.value = ""
			zip.focus();
		}
	}
}

function disableButtons() {
	var inputs = document.getElementsByTagName("input");
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "submit" || inputs[i].type == "reset" || inputs[i].type == "button") {
			inputs[i].disabled = true;
		}
	}
}

function enableButtons() {
	var inputs = document.getElementsByTagName("input");
	for (var i = 0; i < inputs.length; i++) {
		if (inputs[i].type == "submit" || inputs[i].type == "reset" || inputs[i].type == "button") {
			inputs[i].disabled = false;
		}
	}
}

function getViewableSize() {
	var size = [0, 0];
	
	if (typeof window.innerWidth != 'undefined') {
		size = [
			window.innerWidth,
			window.innerHeight
		];
	} else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
		size = [
			document.documentElement.clientWidth,
			document.documentElement.clientHeight
		];
	} else {
		size = [
			document.getElementsByTagName('body')[0].clientWidth,
			document.getElementsByTagName('body')[0].clientHeight
		];
	}
	return size;
}

function setDays(monthSelect, daySelect, yearSelect) {
	var iYear = parseInt(document.getElementById(yearSelect).options[document.getElementById(yearSelect).selectedIndex].value);
	var iMonth = parseInt(document.getElementById(monthSelect).selectedIndex);
	var iDay = parseInt(document.getElementById(daySelect).selectedIndex);
	
	document.getElementById(daySelect).options.length = 0;
	var aDays = new Array(31, ((iYear % 4 == 0 && iYear % 100 != 0) || iYear % 400 == 0 ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	
	document.getElementById(daySelect).options.length = document.getElementById(daySelect).options.length + 1;
	document.getElementById(daySelect).options[0].value = "";
	document.getElementById(daySelect).options[0].text = "Day";
    	
	for(i = 1; i < (aDays[iMonth-1] + 1); i++) {
   	document.getElementById(daySelect).options.length = document.getElementById(daySelect).options.length + 1;
   	document.getElementById(daySelect).options[i].value = i;
   	document.getElementById(daySelect).options[i].text = i;
	}
	document.getElementById(daySelect).selectedIndex = (iDay < document.getElementById(daySelect).options.length) ? iDay : document.getElementById(daySelect).options.length - 1;
}


