function e(i) {
	return (document.all && !document.getElementById) ? document.all[i] : document.getElementById(i);
}

function gebi(i) {
	return (document.all && !document.getElementById) ? document.all[i] : document.getElementById(i);
}

function isEmailAddress(email) {
	if (email.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1) return true;
	else return false;
}

function validateContact(hide_size_and_segment) {
	if (typeof has_size_and_segment == "undefined") hide_size_and_segment = 0;
	var passed = true;
	var terms = gebi("terms");
	var question = gebi("question");

	var var2_suffix = (gebi("is_variation2").value == 1) ? '_var2' : '';

	if (question != null && question.value == "") { passed = false; gebi("question_label").className = "missing"; }
	else if (question != null) gebi("question_label").className = "ok";
	if (gebi("firstname").value == "") { passed = false; gebi("firstname_label").className = "missing"; }
	else gebi("firstname_label").className = "ok";
	if (gebi("lastname").value == "") { passed = false; gebi("lastname_label").className = "missing"; }
	else gebi("lastname_label").className = "ok";
	if (gebi("company").value == "") { passed = false; gebi("company_label").className = "missing"; }
	else gebi("company_label").className = "ok";
	if (hide_size_and_segment != 1) {
		var size = gebi("size");
		var segment = gebi("segment");
		if (size != null && size.selectedIndex == 0) { passed = false; gebi("size_label").className = "missing"; }
		else if (size != null) gebi("size_label").className = "ok";
		if (segment != null && segment.selectedIndex == 0) { passed = false; gebi("segment_label").className = "missing"; }
		else if (segment != null) gebi("segment_label").className = "ok";
	}
	if (!isEmailAddress(gebi("email" + var2_suffix).value)) { passed = false; gebi("email_label" + var2_suffix).className = "missing"; }
	else gebi("email_label" + var2_suffix).className = "ok";
	if (gebi("ph0" + var2_suffix).value.search(/^[0-9]{3}$/) == -1 || gebi("ph1" + var2_suffix).value.search(/^[0-9]{3}$/) == -1
		|| gebi("ph2" + var2_suffix).value.search(/^[0-9]{4}$/) == -1) { passed = false; gebi("phone_label" + var2_suffix).className = "missing"; }
	else if (gebi("ph0" + var2_suffix).value.search(/^[2-9][0-9]{2}$/) == -1 || gebi("ph1" + var2_suffix).value.search(/^[2-9][0-9]{2}$/) == -1) { passed = false; gebi("phone_label" + var2_suffix).className = "missing";
		alert("At present, we can only serve organizations in the United States or Canada.\n"
			+ "Please provide a valid North American phone number.");
	}
	else gebi("phone_label" + var2_suffix).className = "ok";
	if (terms != null && terms.checked == false) { passed = false; gebi("terms_label").className = "missing_normal"; }
	else if (terms != null) gebi("terms_label").className = "ok_normal";
	return passed;
}

function validateContactDownload(hide_size_and_segment) {
	if (typeof has_size_and_segment == "undefined") hide_size_and_segment = 0;
	var passed = true;
	var terms = gebi("terms");

	if (gebi("firstname").value == "") { passed = false; gebi("name_label").className = "missing"; }
	else gebi("name_label").className = "ok";
	if (gebi("lastname").value == "") { passed = false; gebi("name_label").className = "missing"; }
	else gebi("name_label").className = "ok";
	if (gebi("company").value == "") { passed = false; gebi("company_label").className = "missing"; }
	else gebi("company_label").className = "ok";
	if (hide_size_and_segment != 1) {
		var size = gebi("size");
		var segment = gebi("segment");
		if (size != null && size.selectedIndex == 0) { passed = false; gebi("size_label").className = "missing"; }
		else if (size != null) gebi("size_label").className = "ok";
		if (segment != null && segment.selectedIndex == 0) { passed = false; gebi("segment_label").className = "missing"; }
		else if (segment != null) gebi("segment_label").className = "ok";
	}
	if (!isEmailAddress(gebi("email").value)) { passed = false; gebi("email_label").className = "missing"; }
	else gebi("email_label").className = "ok";
	if (gebi("ph0").value.search(/^[0-9]{3}$/) == -1 || gebi("ph1").value.search(/^[0-9]{3}$/) == -1
		|| gebi("ph2").value.search(/^[0-9]{4}$/) == -1) { passed = false; gebi("phone_label").className = "missing"; }
	else if (gebi("ph0").value.search(/^[2-9][0-9]{2}$/) == -1 || gebi("ph1").value.search(/^[2-9][0-9]{2}$/) == -1) { passed = false; gebi("phone_label").className = "missing";
		alert("At present, we can only serve organizations in the United States or Canada.\n"
			+ "Please provide a valid North American phone number.");
	}
	else gebi("phone_label").className = "ok";
	if (terms != null && terms.checked == false) { passed = false; gebi("terms_label").className = "missing_normal"; }
	else if (terms != null) gebi("terms_label").className = "ok";
	return passed;
}

function validateProductForm(demo_form, suffix) {
	var passed = true;
	var terms = gebi("terms" + suffix);
	var size = gebi("size" + suffix);
	var segment = gebi("segment" + suffix);
	if (gebi("f_name" + suffix).value == "" || gebi("f_name" + suffix).value == "First Name") {
		passed = false;
		gebi("f_name" + suffix).className = "pf_missing";
	}
	else gebi("f_name" + suffix).className = "pf_ok";
	if (gebi("l_name" + suffix).value == "" || gebi("l_name" + suffix).value == "Last Name") {
		passed = false;
		gebi("l_name" + suffix).className = "pf_missing";
	}
	else gebi("l_name" + suffix).className = "pf_ok";
	if (gebi("company" + suffix).value == "" || gebi("company" + suffix).value == "Company") {
		passed = false;
		gebi("company" + suffix).className = "pf_missing";
	}
	else gebi("company" + suffix).className = "pf_ok";
	if (size != null && size.selectedIndex == 0) {
		passed = false;
		gebi("size" + suffix).className = "pf_missing";
	}
	else if (size != null) gebi("size" + suffix).className = "pf_ok";
	if (segment != null && segment.selectedIndex == 0) {
		passed = false;
		gebi("segment" + suffix).className = "pf_missing";
	}
	else if (segment != null) gebi("segment" + suffix).className = "pf_ok";
	if (!isEmailAddress(gebi("email" + suffix).value)) {
		passed = false;
		gebi("email" + suffix).className = "pf_missing";
	}
	else gebi("email").className = "pf_ok";
	if (gebi("ph0" + suffix).value.search(/^[0-9]{3}$/) == -1
	|| gebi("ph1" + suffix).value.search(/^[0-9]{3}$/) == -1
	|| gebi("ph2" + suffix).value.search(/^[0-9]{4}$/) == -1) {
		passed = false;
		gebi("ph0" + suffix).className = "pf_missing";
		gebi("ph1" + suffix).className = "pf_missing";
		gebi("ph2" + suffix).className = "pf_missing";
	}
	else if (gebi("ph0" + suffix).value.search(/^[2-9][0-9]{2}$/) == -1
	|| gebi("ph1" + suffix).value.search(/^[2-9][0-9]{2}$/) == -1) {
		passed = false;
		gebi("ph0" + suffix).className = "pf_missing";
		gebi("ph1" + suffix).className = "pf_missing";
		gebi("ph2" + suffix).className = "pf_missing";
		alert("At present, we can only serve organizations in the United States or Canada.\n"
			+ "Please provide a valid North American phone number.");
	}
	else {
		gebi("ph0" + suffix).className = "pf_ok";
		gebi("ph1" + suffix).className = "pf_ok";
		gebi("ph2" + suffix).className = "pf_ok";
	}
	if (terms != null && terms.checked == false) {
		passed = false;
		gebi("terms_label" + suffix).className = "missing_normal";
	}
	else if (terms != null) gebi("terms_label" + suffix).className = "ok_normal";
	if (passed) demo_form.submit();
}

function confirmAction(question, url) {
	data = confirm(question);
	if (data==true) location.href = url;
}

function popup(url, w, h, s, r) {
	s = s == void 0 ? ',scrollbars=1' : '';
	r = r == void 0 ? ',resizable=1' : '';
	l = (screen.width) ? (screen.width - w)/2 : 0;
	t = (screen.height) ? (screen.height - h)/2 : 0;
	winpops = window.open(url,'','top='+t+',left='+l+',width='+w+',height='+h+s+r);
}

function limitText(limitField, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	}
}

function moveOnMax(field, nextFieldID) {
	if (field.value.length >= field.maxLength) {
		gebi(nextFieldID).focus();
	}
}
