var isIE = (navigator.userAgent.toLowerCase().indexOf('msie') != -1);
var r = new RegExp("\s*errorbox", "g");

function getCheckedValue(e) {
	if (e && e.length) {
		for (var i = 0; i < e.length; i++) {
			if (e[i].checked) {
				return e[i].value;
			}
		}
	}
	return "";
}

function hasClass(elem, cls) {
	return elem.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
}

function addClass(elem, cls) {
	if (!this.hasClass(elem, cls)) {
		elem.className += " " + cls;
	}
}

function removeClass(elem, cls) {
	if (hasClass(elem, cls)) {
		var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
		elem.className = elem.className.replace(reg, ' ');
	}
}

function showError(field, msg) {
	if (field) {
		field.className += " errorbox";
	}
	var elem = document.getElementById(field.name + "-label");
	if (elem) {
		elem.className += " errorbox";
	}
	elem = document.getElementById(field.name + "-msg");
	if (elem) {
		elem.innerHTML = msg;
	}
}

function resetEmail(f) {
	if (document.getElementById("emailStatus-msg")) {
		document.getElementById("emailStatus-msg").innerHTML = "";
	}
	//email
	f.email.className = f.email.className.replace(r, "");
	document.getElementById("email-label").className = document.getElementById("email-label").className.replace(r, "");
	document.getElementById("email-msg").innerHTML = "";
}

function resetShipping(f) {
	if (document.getElementById("shippingStatus-msg")) {
		document.getElementById("shippingStatus-msg").innerHTML = "";
	}
	//shippingName
	f.shippingName.className = f.shippingName.className.replace(r, "");
	document.getElementById("shippingName-label").className = document.getElementById("shippingName-label").className.replace(r, "");
	document.getElementById("shippingName-msg").innerHTML = "";
	//shippingAddressLine1
	f.shippingAddressLine1.className = f.shippingAddressLine1.className.replace(r, "");
	document.getElementById("shippingAddressLine1-label").className = document.getElementById("shippingAddressLine1-label").className.replace(r, "");
	document.getElementById("shippingAddressLine1-msg").innerHTML = "";
	//shippingCity & shippingStateProvinceCode
	f.shippingCity.className = f.shippingCity.className.replace(r, "");
	document.getElementById("shippingCity-label").className = document.getElementById("shippingCity-label").className.replace(r, "");
	f.shippingStateProvinceCode.className = f.shippingStateProvinceCode.className.replace(r, "");
	document.getElementById("shippingStateProvinceCode-label").className = document.getElementById("shippingStateProvinceCode-label").className.replace(r, "");
	if (document.getElementById("shippingCity-msg")) {
		document.getElementById("shippingCity-msg").innerHTML = "";
	}
	if (document.getElementById("shippingZip6StateProvinceCode-msg")) {
		document.getElementById("shippingZip6StateProvinceCode-msg").innerHTML = "";
	}
	if (document.getElementById("shippingCityStateProvinceCode-msg")) {
		document.getElementById("shippingCityStateProvinceCode-msg").innerHTML = "";
	}
	//shippingZip6
	f.shippingZip6.className = f.shippingZip6.className.replace(r, "");
	document.getElementById("shippingZip6-label").className = document.getElementById("shippingZip6-label").className.replace(r, "");
	if (document.getElementById("shippingZip6-msg")) {
		document.getElementById("shippingZip6-msg").innerHTML = "";
	}
	//shippingPhone
	f.shippingPhonePart1.className = f.shippingPhonePart1.className.replace(r, "");
	f.shippingPhonePart2.className = f.shippingPhonePart2.className.replace(r, "");
	f.shippingPhonePart3.className = f.shippingPhonePart3.className.replace(r, "");
	document.getElementById("shippingPhone-label").className = document.getElementById("shippingPhone-label").className.replace(r, "");
	document.getElementById("shippingPhone-msg").innerHTML = "";
}

function resetBilling(f) {
	if (document.getElementById("creditCardStatus-msg")) {
		document.getElementById("creditCardStatus-msg").innerHTML = "";
	}
	/*
	//cardHolderName
	f.cardHolderName.className = f.cardHolderName.className.replace(r, "");
	document.getElementById("cardHolderName-label").className = document.getElementById("cardHolderName-label").className.replace(r, "");
	document.getElementById("cardHolderName-msg").innerHTML = "";
	*/
	//paymentMethodType
	document.getElementById("paymentMethodType-label").className = document.getElementById("paymentMethodType-label").className.replace(r, "");
	document.getElementById("paymentMethodType-msg").innerHTML = "";
	//paymentMethodAccountNumber
	f.paymentMethodAccountNumber.className = f.paymentMethodAccountNumber.className.replace(r, "");
	document.getElementById("paymentMethodAccountNumber-label").className = document.getElementById("paymentMethodAccountNumber-label").className.replace(r, "");
	document.getElementById("paymentMethodAccountNumber-msg").innerHTML = "";
	//creditMethodExpirationDate
	f.creditMethodExpirationMonth.className = f.creditMethodExpirationMonth.className.replace(r, "");
	f.creditMethodExpirationYear.className = f.creditMethodExpirationYear.className.replace(r, "");
	document.getElementById("creditMethodExpirationDate-label").className = document.getElementById("creditMethodExpirationDate-label").className.replace(r, "");
	document.getElementById("creditMethodExpirationDate-msg").innerHTML = "";
	//billingSecurityCode
	f.billingSecurityCode.className = f.billingSecurityCode.className.replace(r, "");
	document.getElementById("billingSecurityCode-label").className = document.getElementById("billingSecurityCode-label").className.replace(r, "");
	document.getElementById("billingSecurityCode-msg").innerHTML = "";
	//billingName
	f.billingName.className = f.billingName.className.replace(r, "");
	document.getElementById("billingName-label").className = document.getElementById("billingName-label").className.replace(r, "");
	document.getElementById("billingName-msg").innerHTML = "";
	//billingAddressLine1
	f.billingAddressLine1.className = f.billingAddressLine1.className.replace(r, "");
	document.getElementById("billingAddressLine1-label").className = document.getElementById("billingAddressLine1-label").className.replace(r, "");
	document.getElementById("billingAddressLine1-msg").innerHTML = "";
	//billingCity & billingStateProvince
	f.billingCity.className = f.billingCity.className.replace(r, "");
	document.getElementById("billingCity-label").className = document.getElementById("billingCity-label").className.replace(r, "");
	f.billingStateProvince.className = f.billingStateProvince.className.replace(r, "");
	document.getElementById("billingStateProvince-label").className = document.getElementById("billingStateProvince-label").className.replace(r, "");
	if (document.getElementById("billingCity-msg")) {
		document.getElementById("billingCity-msg").innerHTML = "";
	}
	if (document.getElementById("billingZipCodeCityStateProvince-msg")) {
		document.getElementById("billingZipCodeCityStateProvince-msg").innerHTML = "";
	}
	if (document.getElementById("billingCityStateProvince-msg")) {
		document.getElementById("billingCityStateProvince-msg").innerHTML = "";
	}
	//billingZipCode
	f.billingZipCode.className = f.billingZipCode.className.replace(r, "");
	document.getElementById("billingZipCode-label").className = document.getElementById("billingZipCode-label").className.replace(r, "");
	if (document.getElementById("billingZipCode-msg")) {
		document.getElementById("billingZipCode-msg").innerHTML = "";
	}
	//billingPhone
	f.billingPhonePart1.className = f.billingPhonePart1.className.replace(r, "");
	f.billingPhonePart2.className = f.billingPhonePart2.className.replace(r, "");
	f.billingPhonePart3.className = f.billingPhonePart3.className.replace(r, "");
	document.getElementById("billingPhone-label").className = document.getElementById("billingPhone-label").className.replace(r, "");
	document.getElementById("billingPhone-msg").innerHTML = "";
}

function resetBillMeLater(f) {
	document.getElementById("billMeLaterStatus-msg").innerHTML = "";
	//bmlName
	f.bmlName.className = f.bmlName.className.replace(r, "");
	document.getElementById("bmlName-label").className = document.getElementById("bmlName-label").className.replace(r, "");
	document.getElementById("bmlName-msg").innerHTML = "";
	//bmlAddressLine1
	f.bmlAddressLine1.className = f.bmlAddressLine1.className.replace(r, "");
	document.getElementById("bmlAddressLine1-label").className = document.getElementById("bmlAddressLine1-label").className.replace(r, "");
	document.getElementById("bmlAddressLine1-msg").innerHTML = "";
	//bmlCity & bmlStateProvince
	f.bmlCity.className = f.bmlCity.className.replace(r, "");
	document.getElementById("bmlCity-label").className = document.getElementById("bmlCity-label").className.replace(r, "");
	f.bmlStateProvince.className = f.bmlStateProvince.className.replace(r, "");
	document.getElementById("bmlStateProvince-label").className = document.getElementById("bmlStateProvince-label").className.replace(r, "");
	document.getElementById("bmlCityStateProvince-msg").innerHTML = "";
	//bmlZipCode
	f.bmlZipCode.className = f.bmlZipCode.className.replace(r, "");
	document.getElementById("bmlZipCode-label").className = document.getElementById("bmlZipCode-label").className.replace(r, "");
	document.getElementById("bmlZipCode-msg").innerHTML = "";
	//bmlPhone
	f.bmlPhonePart1.className = f.bmlPhonePart1.className.replace(r, "");
	f.bmlPhonePart2.className = f.bmlPhonePart2.className.replace(r, "");
	f.bmlPhonePart3.className = f.bmlPhonePart3.className.replace(r, "");
	document.getElementById("bmlPhone-label").className = document.getElementById("bmlPhone-label").className.replace(r, "");
	document.getElementById("bmlPhone-msg").innerHTML = "";
	//bmlDateOfBirth
	f.bmlDateOfBirthMonth.className = f.bmlDateOfBirthMonth.className.replace(r, "");
	f.bmlDateOfBirthDay.className = f.bmlDateOfBirthDay.className.replace(r, "");
	f.bmlDateOfBirthYear.className = f.bmlDateOfBirthYear.className.replace(r, "");
	document.getElementById("bmlDateOfBirth-label").className = document.getElementById("bmlDateOfBirth-label").className.replace(r, "");
	document.getElementById("bmlDateOfBirth-msg").innerHTML = "";
	//bmlSocialSecurityNumberPart3
	f.bmlSocialSecurityNumberPart3.className = f.bmlSocialSecurityNumberPart3.className.replace(r, "");
	document.getElementById("bmlSocialSecurityNumber-label").className = document.getElementById("bmlSocialSecurityNumber-label").className.replace(r, "");
	document.getElementById("bmlSocialSecurityNumber-msg").innerHTML = "";
	//bmlTOSElectronicalPresentation
	f.bmlTOSElectronicalPresentation.className = f.bmlTOSElectronicalPresentation.className.replace(r, "");
	document.getElementById("bmlTOSElectronicalPresentation-label").className = document.getElementById("bmlTOSElectronicalPresentation-label").className.replace(r, "");
	document.getElementById("bmlTOSElectronicalPresentation-msg").innerHTML = "";
	//bmlTOS
	f.bmlTOS.className = f.bmlTOS.className.replace(r, "");
	document.getElementById("bmlTOS-label").className = document.getElementById("bmlTOS-label").className.replace(r, "");
	document.getElementById("bmlTOS-msg").innerHTML = "";
}

function resetPin(f) {
	if (document.getElementById("pinStatus-msg")) {
		document.getElementById("pinStatus-msg").innerHTML = "";
	}
	if (f.oldPin1 && f.oldPin2 && f.oldPin3 && f.oldPin4) {
		//oldPin
		f.oldPin1.className = f.oldPin1.className.replace(r, "");
		f.oldPin2.className = f.oldPin2.className.replace(r, "");
		f.oldPin3.className = f.oldPin3.className.replace(r, "");
		f.oldPin4.className = f.oldPin4.className.replace(r, "");
		document.getElementById("oldPin-label").className = document.getElementById("oldPin-label").className.replace(r, "");
		document.getElementById("oldPin-msg").innerHTML = "";
	}
	//pin
	f.pin1.className = f.pin1.className.replace(r, "");
	f.pin2.className = f.pin2.className.replace(r, "");
	f.pin3.className = f.pin3.className.replace(r, "");
	f.pin4.className = f.pin4.className.replace(r, "");
	document.getElementById("pin-label").className = document.getElementById("pin-label").className.replace(r, "");
	document.getElementById("pin-msg").innerHTML = "";
	//rePin
	f.rePin1.className = f.rePin1.className.replace(r, "");
	f.rePin2.className = f.rePin2.className.replace(r, "");
	f.rePin3.className = f.rePin3.className.replace(r, "");
	f.rePin4.className = f.rePin4.className.replace(r, "");
	document.getElementById("rePin-label").className = document.getElementById("rePin-label").className.replace(r, "");
	document.getElementById("rePin-msg").innerHTML = "";
}

function resetSecurityCode(f) {
	//securityCode
	f.securityCode.className = f.securityCode.className.replace(r, "");
	document.getElementById("securityCode-label").className = document.getElementById("securityCode-label").className.replace(r, "");
	document.getElementById("securityCode-msg").innerHTML = "";
}

function reset(f) {
	//main message
	var e = document.getElementById("mainErrorMsg");
	e.style.display = "none";
	e.innerHTML = "Please check your information below and correct the highlighted fields to continue.";

	resetEmail(f);
	resetShipping(f);
	resetBilling(f);
	resetPin(f);

	//readAndAgreedTOS
	f.readAndAgreedTOS.className = f.readAndAgreedTOS.className.replace(r, "");
	document.getElementById("readAndAgreedTOS-label").className = document.getElementById("readAndAgreedTOS-label").className.replace(r, "");
	document.getElementById("readAndAgreedTOS-msg").innerHTML = "";
	//createWallet submit button
	f.submitReviewWallet.className = "createprofilebtnoff";
}

function validateEmail(f) {
	var valid = true;
	var email = f.email.value;
	if (email == "") {
		f.email.className += " errorbox";
		document.getElementById("email-label").className += " errorbox";
		document.getElementById("email-msg").innerHTML = "Please check this information.";
		valid = false;
	} else {
		var re = new RegExp("^([a-zA-Z_0-9!#$%'&\\*\\+\\-/=\\?\\^_'{|}~\\.]*[a-zA-Z_0-9!#$%'&\\*\\+\\-/=\\?\\^_'{|}~]+@[a-zA-Z_0-9!#$%'&\\*\\+\\-/=\\?\\^_'{|}~\\.]+\\.[a-zA-Z_0-9!#$%'&\\*\\+\\-/=\\?\\^_'{|}~]+){1}$");
		if (re.test(email) === false) {
			f.email.className += " errorbox";
			document.getElementById("email-label").className += " errorbox";
			document.getElementById("email-msg").innerHTML = "Invalid e-mail.";
			valid = false;
		}
	}
	return valid;
}

function validateShipping(f) {
	var valid = true;
	var shippingName = f.shippingName.value;
	if (shippingName == "") {
		f.shippingName.className += " errorbox";
		document.getElementById("shippingName-label").className += " errorbox";
		document.getElementById("shippingName-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	var shippingAddressLine1 = f.shippingAddressLine1.value;
	if (shippingAddressLine1 == "") {
		f.shippingAddressLine1.className += " errorbox";
		document.getElementById("shippingAddressLine1-label").className += " errorbox";
		document.getElementById("shippingAddressLine1-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	var shippingCity = f.shippingCity.value;
	if (shippingCity == "") {
		f.shippingCity.className += " errorbox";
		document.getElementById("shippingCity-label").className += " errorbox";
		if (document.getElementById("shippingCity-msg")) {
			document.getElementById("shippingCity-msg").innerHTML = "Please check this information.";
		} else {
			document.getElementById("shippingCityStateProvinceCode-msg").innerHTML = "Please check this information.";
		}
		valid = false;
	}
	var shippingStateProvinceCode = f.shippingStateProvinceCode.value;
	if (shippingStateProvinceCode == "") {
		f.shippingStateProvinceCode.className += " errorbox";
		document.getElementById("shippingStateProvinceCode-label").className += " errorbox";
		if (document.getElementById("shippingZip6StateProvinceCode-msg")) {
			document.getElementById("shippingZip6StateProvinceCode-msg").innerHTML = "Please check this information.";
		} else {
			document.getElementById("shippingCityStateProvinceCode-msg").innerHTML = "Please check this information.";
		}
		valid = false;
	}
	var shippingZip6 = f.shippingZip6.value;
	if (shippingZip6 == "") {
		f.shippingZip6.className += " errorbox";
		document.getElementById("shippingZip6-label").className += " errorbox";
		if (document.getElementById("shippingZip6StateProvinceCode-msg")) {
			document.getElementById("shippingZip6StateProvinceCode-msg").innerHTML = "Please check this information.";
		} else {
			document.getElementById("shippingZip6-msg").innerHTML = "Please check this information.";
		}
		valid = false;
	}
	var shippingPhonePart1 = f.shippingPhonePart1.value;
	var shippingPhonePart2 = f.shippingPhonePart2.value;
	var shippingPhonePart3 = f.shippingPhonePart3.value;
	if ((shippingPhonePart1 == "") || (shippingPhonePart2 == "") || (shippingPhonePart3 == "")) {
		document.getElementById("shippingPhone-label").className += " errorbox";
		if (shippingPhonePart1 == "") {
			f.shippingPhonePart1.className += " errorbox";
		}
		if (shippingPhonePart2 == "") {
			f.shippingPhonePart2.className += " errorbox";
		}
		if (shippingPhonePart3 == "") {
			f.shippingPhonePart3.className += " errorbox";
		}
		document.getElementById("shippingPhone-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	return valid;
}

function validateBilling(f) {
	var valid = true;
/*
	if (f.billingSameAsShipping.checked === false) {
		var cardHolderName = f.cardHolderName.value;
		if (cardHolderName == "") {
			f.cardHolderName.className += " errorbox";
			document.getElementById("cardHolderName-label").className += " errorbox";
			document.getElementById("cardHolderName-msg").innerHTML = "Please check this information.";
			valid = false;
		}
	}
	*/
	var paymentMethodType = getCheckedValue(f.paymentMethodType);
	if (paymentMethodType == "") {
		document.getElementById("paymentMethodType-label").className += " errorbox";
		document.getElementById("paymentMethodType-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	var paymentMethodAccountNumber = f.paymentMethodAccountNumber.value;
	if (paymentMethodAccountNumber == "") {
		f.paymentMethodAccountNumber.className += " errorbox";
		document.getElementById("paymentMethodAccountNumber-label").className += " errorbox";
		document.getElementById("paymentMethodAccountNumber-msg").innerHTML = "Please check this information.";
		valid = false;
	} else {
		var checkCardNumber = ((originalPaymentMethodAccountNumber == "") || (originalPaymentMethodAccountNumber != paymentMethodAccountNumber) || (originalPaymentMethodType == "") || (originalPaymentMethodType != paymentMethodType));
		if (checkCardNumber && (paymentMethodType != "") && !isValidCreditCardNumber(paymentMethodType, paymentMethodAccountNumber)) {
			f.paymentMethodAccountNumber.className += " errorbox";
			document.getElementById("paymentMethodAccountNumber-label").className += " errorbox";
			document.getElementById("paymentMethodAccountNumber-msg").innerHTML = "Invalid card number.";
			valid = false;
		}
	}
	var creditMethodExpirationMonth = f.creditMethodExpirationMonth.value;
	var creditMethodExpirationYear = f.creditMethodExpirationYear.value;
	if ((creditMethodExpirationMonth == "") || (creditMethodExpirationYear == "")) {
		document.getElementById("creditMethodExpirationDate-label").className += " errorbox";
		if (creditMethodExpirationMonth == "") {
			f.creditMethodExpirationMonth.className += " errorbox";
		}
		if (creditMethodExpirationYear == "") {
			f.creditMethodExpirationYear.className += " errorbox";
		}
		document.getElementById("creditMethodExpirationDate-msg").innerHTML = "Please check this information.";
		valid = false;
	} else {
		var currentDate = new Date();
		if ((currentDate.getFullYear() > creditMethodExpirationYear) || ((currentDate.getFullYear() == creditMethodExpirationYear) && (currentDate.getMonth() + 1 > creditMethodExpirationMonth))) {
			f.creditMethodExpirationYear.className += " errorbox";
			document.getElementById("creditMethodExpirationDate-label").className += " errorbox";
			document.getElementById("creditMethodExpirationDate-msg").innerHTML = "You entered an invalid card expiration date.";
			valid = false;
		}
	}
	var billingSecurityCode = f.billingSecurityCode.value;
	if (billingSecurityCode == "") {
		f.billingSecurityCode.className += " errorbox";
		document.getElementById("billingSecurityCode-label").className += " errorbox";
		document.getElementById("billingSecurityCode-msg").innerHTML = "Please check this information.";
		valid = false;
	} else {
		if ((paymentMethodType != "") && !isValidSecurityCode(paymentMethodType, billingSecurityCode)) {
			f.billingSecurityCode.className += " errorbox";
			document.getElementById("billingSecurityCode-label").className += " errorbox";
			document.getElementById("billingSecurityCode-msg").innerHTML = "Invalid security code.";
			valid = false;
		}
	}
	if (f.billingSameAsShipping.checked === false) {
		var billingName = f.billingName.value;
		if (billingName == "") {
			f.billingName.className += " errorbox";
			document.getElementById("billingName-label").className += " errorbox";
			document.getElementById("billingName-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var billingAddressLine1 = f.billingAddressLine1.value;
		if (billingAddressLine1 == "") {
			f.billingAddressLine1.className += " errorbox";
			document.getElementById("billingAddressLine1-label").className += " errorbox";
			document.getElementById("billingAddressLine1-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var billingCity = f.billingCity.value;
		if (billingCity == "") {
			f.billingCity.className += " errorbox";
			document.getElementById("billingCity-label").className += " errorbox";
			if (document.getElementById("billingCity-msg")) {
				document.getElementById("billingCity-msg").innerHTML = "Please check this information.";
			} else {
				document.getElementById("billingCityStateProvince-msg").innerHTML = "Please check this information.";
			}
			valid = false;
		}
		var billingStateProvince = f.billingStateProvince.value;
		if (billingStateProvince == "") {
			f.billingStateProvince.className += " errorbox";
			document.getElementById("billingStateProvince-label").className += " errorbox";
			if (document.getElementById("billingZipCodeCityStateProvince-msg")) {
				document.getElementById("billingZipCodeCityStateProvince-msg").innerHTML = "Please check this information.";
			} else {
				document.getElementById("billingCityStateProvince-msg").innerHTML = "Please check this information.";
			}
			valid = false;
		}
		var billingZipCode = f.billingZipCode.value;
		if (billingZipCode == "") {
			f.billingZipCode.className += " errorbox";
			document.getElementById("billingZipCode-label").className += " errorbox";
			if (document.getElementById("billingZipCodeCityStateProvince-msg")) {
				document.getElementById("billingZipCodeCityStateProvince-msg").innerHTML = "Please check this information.";
			} else {
				document.getElementById("billingZipCode-msg").innerHTML = "Please check this information.";
			}
			valid = false;
		}
		var billingPhonePart1 = f.billingPhonePart1.value;
		var billingPhonePart2 = f.billingPhonePart2.value;
		var billingPhonePart3 = f.billingPhonePart3.value;
		if ((billingPhonePart1 == "") || (billingPhonePart2 == "") || (billingPhonePart3 == "")) {
			document.getElementById("billingPhone-label").className += " errorbox";
			if (billingPhonePart1 == "") {
				f.billingPhonePart1.className += " errorbox";
			}
			if (billingPhonePart2 == "") {
				f.billingPhonePart2.className += " errorbox";
			}
			if (billingPhonePart3 == "") {
				f.billingPhonePart3.className += " errorbox";
			}
			document.getElementById("billingPhone-msg").innerHTML = "Please check this information.";
			valid = false;
		}
	}
	return valid;
}

function validateBillMeLater(f) {
	var valid = true;
	if (f.bmlSameAsShipping.checked === false) {
		var bmlName = f.bmlName.value;
		if (bmlName == "") {
			f.bmlName.className += " errorbox";
			document.getElementById("bmlName-label").className += " errorbox";
			document.getElementById("bmlName-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var bmlAddressLine1 = f.bmlAddressLine1.value;
		if (bmlAddressLine1 == "") {
			f.bmlAddressLine1.className += " errorbox";
			document.getElementById("bmlAddressLine1-label").className += " errorbox";
			document.getElementById("bmlAddressLine1-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var bmlCity = f.bmlCity.value;
		if (bmlCity == "") {
			f.bmlCity.className += " errorbox";
			document.getElementById("bmlCity-label").className += " errorbox";
			document.getElementById("bmlCityStateProvince-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var bmlStateProvince = f.bmlStateProvince.value;
		if (bmlStateProvince == "") {
			f.bmlStateProvince.className += " errorbox";
			document.getElementById("bmlStateProvince-label").className += " errorbox";
			document.getElementById("bmlCityStateProvince-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var bmlZipCode = f.bmlZipCode.value;
		if (bmlZipCode == "") {
			f.bmlZipCode.className += " errorbox";
			document.getElementById("bmlZipCode-label").className += " errorbox";
			document.getElementById("bmlZipCode-msg").innerHTML = "Please check this information.";
			valid = false;
		}
		var bmlPhonePart1 = f.bmlPhonePart1.value;
		var bmlPhonePart2 = f.bmlPhonePart2.value;
		var bmlPhonePart3 = f.bmlPhonePart3.value;
		if ((bmlPhonePart1 == "") || (bmlPhonePart2 == "") || (bmlPhonePart3 == "")) {
			document.getElementById("bmlPhone-label").className += " errorbox";
			if (bmlPhonePart1 == "") {
				f.bmlPhonePart1.className += " errorbox";
			}
			if (bmlPhonePart2 == "") {
				f.bmlPhonePart2.className += " errorbox";
			}
			if (bmlPhonePart3 == "") {
				f.bmlPhonePart3.className += " errorbox";
			}
			document.getElementById("bmlPhone-msg").innerHTML = "Please check this information.";
			valid = false;
		}
	}
	var bmlDateOfBirthMonth = f.bmlDateOfBirthMonth.value;
	var bmlDateOfBirthDay = f.bmlDateOfBirthDay.value;
	var bmlDateOfBirthYear = f.bmlDateOfBirthYear.value;
	if ((bmlDateOfBirthMonth == "") || (bmlDateOfBirthDay == "") || (bmlDateOfBirthYear == "")) {
		document.getElementById("bmlDateOfBirth-label").className += " errorbox";
		if (bmlDateOfBirthMonth == "") {
			f.bmlDateOfBirthMonth.className += " errorbox";
		}
		if (bmlDateOfBirthDay == "") {
			f.bmlDateOfBirthDay.className += " errorbox";
		}
		if (bmlDateOfBirthYear == "") {
			f.bmlDateOfBirthYear.className += " errorbox";
		}
		document.getElementById("bmlDateOfBirth-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	var bmlSocialSecurityNumberPart3 = f.bmlSocialSecurityNumberPart3.value;
	if (bmlSocialSecurityNumberPart3 == "") {
		f.bmlSocialSecurityNumberPart3.className += " errorbox";
		document.getElementById("bmlSocialSecurityNumber-label").className += " errorbox";
		document.getElementById("bmlSocialSecurityNumber-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	if (f.bmlTOSElectronicalPresentation.checked === false) {
		f.bmlTOSElectronicalPresentation.className += " errorbox";
		document.getElementById("bmlTOSElectronicalPresentation-label").className += " errorbox";
		document.getElementById("bmlTOSElectronicalPresentation-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	if (f.bmlTOS.checked === false) {
		f.bmlTOS.className += " errorbox";
		document.getElementById("bmlTOS-label").className += " errorbox";
		document.getElementById("bmlTOS-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	return valid;
}

function validatePin(f) {
	var valid = true;
	if (f.oldPin1 && f.oldPin2 && f.oldPin3 && f.oldPin4) {
		var oldPin1 = f.oldPin1.value;
		var oldPin2 = f.oldPin2.value;
		var oldPin3 = f.oldPin3.value;
		var oldPin4 = f.oldPin4.value;
		var validOldPin = (isDigitString(oldPin1) && isDigitString(oldPin2) && isDigitString(oldPin3) && isDigitString(oldPin4));
		if (!validOldPin) {
			document.getElementById("oldPin-label").className += " errorbox";
			if (!isDigitString(oldPin1)) {
				f.oldPin1.className += " errorbox";
			}
			if (!isDigitString(oldPin2)) {
				f.oldPin2.className += " errorbox";
			}
			if (!isDigitString(oldPin3)) {
				f.oldPin3.className += " errorbox";
			}
			if (!isDigitString(oldPin4)) {
				f.oldPin4.className += " errorbox";
			}
			document.getElementById("oldPin-msg").innerHTML = "Please check this information.";
			valid = false;
		}
	}
	var pin1 = f.pin1.value;
	var pin2 = f.pin2.value;
	var pin3 = f.pin3.value;
	var pin4 = f.pin4.value;
	var validPin = (isDigitString(pin1) && isDigitString(pin2) && isDigitString(pin3) && isDigitString(pin4));
	if (!validPin) {
		document.getElementById("pin-label").className += " errorbox";
		if (!isDigitString(pin1)) {
			f.pin1.className += " errorbox";
		}
		if (!isDigitString(pin2)) {
			f.pin2.className += " errorbox";
		}
		if (!isDigitString(pin3)) {
			f.pin3.className += " errorbox";
		}
		if (!isDigitString(pin4)) {
			f.pin4.className += " errorbox";
		}
		document.getElementById("pin-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	var rePin1 = f.rePin1.value;
	var rePin2 = f.rePin2.value;
	var rePin3 = f.rePin3.value;
	var rePin4 = f.rePin4.value;
	var validReenteredPin = (isDigitString(rePin1) && isDigitString(rePin2) && isDigitString(rePin3) && isDigitString(rePin4));
	if (!validReenteredPin) {
		document.getElementById("rePin-label").className += " errorbox";
		if (!isDigitString(rePin1)) {
			f.rePin1.className += " errorbox";
		}
		if (!isDigitString(rePin2)) {
			f.rePin2.className += " errorbox";
		}
		if (!isDigitString(rePin3)) {
			f.rePin3.className += " errorbox";
		}
		if (!isDigitString(rePin4)) {
			f.rePin4.className += " errorbox";
		}
		document.getElementById("rePin-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	if (validPin && validReenteredPin) {
		if ((pin1 != rePin1) || (pin2 != rePin2) || (pin3 != rePin3) || (pin4 != rePin4)) {
			document.getElementById("pin-label").className += " errorbox";
			document.getElementById("rePin-label").className += " errorbox";
			var msg = "The new Security PINs you entered do not match.";
			if (location.pathname.indexOf("create") == -1) {
				if ((typeof(mode) == "string") && (mode == "insert")) {
					msg = "The Security PINs you entered do not match.";
				}
			} else {
				msg = "The Security PINs you entered<br />do not match.";
			}
			document.getElementById("rePin-msg").innerHTML = "<span>" + msg + "</span>";
			valid = false;
		}
	}
	return valid;
}

function validateSecurityCode(f) {
	var valid = true;
	var securityCode = f.securityCode.value;
	if (securityCode == "") {
		f.securityCode.className += " errorbox";
		document.getElementById("securityCode-label").className += " errorbox";
		document.getElementById("securityCode-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	return valid;
}

function validate(f) {
	reset(f);
	var valid = true;
	if (validateEmail(f) === false) {
		valid = false;
	}
	if (validateShipping(f) === false) {
		valid = false;
	}
	if (activePaymentMethod == "creditCard") {
		if (validateBilling(f) === false) {
			valid = false;
		}
	}
	if (validatePin(f) === false) {
		valid = false;
	}
	if (f.readAndAgreedTOS.checked === false) {
		f.readAndAgreedTOS.className += " errorbox";
		document.getElementById("readAndAgreedTOS-label").className += " errorbox";
		document.getElementById("readAndAgreedTOS-msg").innerHTML = "Please check this information.";
		valid = false;
	}
	if (valid === true) {
		f.submitReviewWallet.className = "createprofilebtn";
	} else {
		document.getElementById("mainErrorMsg").style.display = "block";
	}
	return valid;
}

function getCreditCardImageUrl(paymentMethodType) {
	if ("MasterCard" == paymentMethodType) {
		return "/images/EWallet/mastercard.jpg";
	}
	if ("Visa" == paymentMethodType) {
		return "/images/EWallet/visa.jpg";
	}
	if ("Amex" == paymentMethodType) {
		return "/images/EWallet/amex.jpg";
	}
	if ("Discover" == paymentMethodType) {
		return "/images/EWallet/discovery.jpg";
	}
	return "";
}

function isValidSecurityCode(type, securityCode) {
	if ((type == "MasterCard") || (type == "Visa") || (type == "Discover")) {
		return (isNumeric(securityCode) && (securityCode.length == 3));
	}
	if (type == "Amex") {
		return (isNumeric(securityCode) && (securityCode.length == 4));
	}
	return false;
}

function luhnCheck(number) {
	var sum = 0;
	var secondChar = false;
	for (var i = number.length - 1; i >= 0; i--) {
		var c = number.charAt(i);
		if (!isDigitChar(c)) {
			return false;
		}
		var digit = c - '0';
		if (secondChar) {
			digit += digit;
			if (digit > 9) {
				digit -= 9;
			}
		}
		sum += digit;
		secondChar = !secondChar;
	}
	return (sum == 0) ? false : (sum % 10 == 0);
}

function isValidCreditCardNumber(type, number) {
	var length, prefix;

	if (type == "MasterCard") {
		length = number.length;
		if (length != 16) {
			return false;
		}
		prefix = number.substr(0, 2);
		if (("51" != prefix) && ("52" != prefix) && ("53" != prefix) && ("54" != prefix) && ("55" != prefix)) {
			return false;
		}
		return luhnCheck(number);
	} else if (type == "Visa") {
		length = number.length;
		if ((length != 13) && (length != 16)) {
			return false;
		}
		prefix = number.substr(0, 1);
		if ("4" != prefix) {
			return false;
		}
		return luhnCheck(number);
	} else if (type == "Amex") {
		length = number.length;
		if (length != 15) {
			return false;
		}
		prefix = number.substr(0, 2);
		if (("34" != prefix) && ("37" != prefix)) {
			return false;
		}
		return luhnCheck(number);
	} else if (type == "Discover") {
		length = number.length;
		if (length != 16) {
			return false;
		}
		prefix = number.substr(0, 4);
		if ("6011" != prefix) {
			return false;
		}
		return luhnCheck(number);
	}
	return false;
}

function isNumeric(str) {
	if ((str == null) || (str.length == 0)) {
		return false;
	}
	for (i = str.length - 1; i >= 0; i--) {
		c = str.charAt(i);
		if (!isDigitChar(c)) {
			return false;
		}
	}
	return true;
}

function isDigitString(s) {
	return ((s != null) && (s.length == 1) && isDigitChar(s.charAt(0)));
}

function isDigitChar(c) {
	return ((c >= '0') && (c <= '9'));
}

function myUnescape(s) {
	s = s.replace(/\&lt;/g, "<");
	s = s.replace(/\&gt;/g, ">");
	s = s.replace(/\&quot;/g, "\"");
	s = s.replace(/\&#039;/g, "\'");
	s = s.replace(/\&#092;/g, "\\");
	s = s.replace(/\&amp;/g, "&");
	return s;
}

function useShippingValues(f) {
	var enabled = (document.location.pathname.indexOf("create") != -1);
	if (f.billingSameAsShipping) {
		var checked = f.billingSameAsShipping.checked;
		if (checked) {
			f.billingName.value = f.shippingName.value;
			f.billingAddressLine1.value = f.shippingAddressLine1.value;
			f.billingAddressLine2.value = f.shippingAddressLine2.value;
			f.billingCity.value = f.shippingCity.value;
			f.billingStateProvince.value = f.shippingStateProvinceCode.value;
			f.billingZipCode.value = f.shippingZip6.value;
			f.billingPhonePart1.value = f.shippingPhonePart1.value;
			f.billingPhonePart2.value = f.shippingPhonePart2.value;
			f.billingPhonePart3.value = f.shippingPhonePart3.value;
		}
		f.billingSameAsShipping.disabled = !enabled;
		f.billingName.disabled = checked;
		f.billingAddressLine1.disabled = checked;
		f.billingAddressLine2.disabled = checked;
		f.billingCity.disabled = checked;
		f.billingStateProvince.disabled = checked;
		f.billingZipCode.disabled = checked;
		f.billingPhonePart1.disabled = checked;
		f.billingPhonePart2.disabled = checked;
		f.billingPhonePart3.disabled = checked;
	}
	if (f.bmlSameAsShipping) {
		var checked = f.bmlSameAsShipping.checked;
		if (checked) {
			f.bmlName.value = f.shippingName.value;
			f.bmlAddressLine1.value = f.shippingAddressLine1.value;
			f.bmlAddressLine2.value = f.shippingAddressLine2.value;
			f.bmlCity.value = f.shippingCity.value;
			f.bmlStateProvince.value = f.shippingStateProvinceCode.value;
			f.bmlZipCode.value = f.shippingZip6.value;
			f.bmlPhonePart1.value = f.shippingPhonePart1.value;
			f.bmlPhonePart2.value = f.shippingPhonePart2.value;
			f.bmlPhonePart3.value = f.shippingPhonePart3.value;
		}
		f.bmlSameAsShipping.disabled = !enabled;
		f.bmlName.disabled = checked;
		f.bmlAddressLine1.disabled = checked;
		f.bmlAddressLine2.disabled = checked;
		f.bmlCity.disabled = checked;
		f.bmlStateProvince.disabled = checked;
		f.bmlZipCode.disabled = checked;
		f.bmlPhonePart1.disabled = checked;
		f.bmlPhonePart2.disabled = checked;
		f.bmlPhonePart3.disabled = checked;
	}
	return true;
}

function getCaretPosition(obj) {
	var position = 0;
	if (document.selection) { //IE
		obj.focus();
		var selection = document.selection.createRange();
		selection.moveStart('character', -obj.value.length);
		position = selection.text.length;
	} else if (obj.selectionStart || obj.selectionStart == '0') { //FF
		position = obj.selectionStart;
	}
	return position;
}

function setCaretPosition(obj, position) {
	if (document.selection) { //IE
		obj.focus();
		var selection = document.selection.createRange();
		selection.moveStart('character', -obj.value.length);
		selection.moveStart('character', position);
		selection.moveEnd('character', 0);
		selection.select();
	} else if (obj.selectionStart || obj.selectionStart == '0') { //FF
		obj.selectionStart = position;
		obj.selectionEnd = position;
		obj.focus();
	}
}

function getSelection(obj) {
	if ("selectionStart" in obj) { //FF
		return {
			start: obj.selectionStart,
			end: obj.selectionEnd
		};
	}
	//IE
	var bookmark = document.selection.createRange().getBookmark();
	var selection = obj.createTextRange();
	selection.moveToBookmark(bookmark);
	var before = obj.createTextRange();
	before.collapse(true);
	before.setEndPoint("EndToStart", selection);
	var beforeLength = before.text.length;
	var selLength = selection.text.length;
	return {
		start: beforeLength,
		end: beforeLength + selLength
	};
}

function postClickOnEnter(e, obj) {
	var code = (window.event ? window.event.keyCode : e.which);
	if (code == 13) {
		if (obj.onclick) {
			obj.onclick();
			return false;
		}
	}
	return true;
}

function keyPressOnPin(e, obj) {
	var code = window.event ? e.keyCode : e.which;
	if ((code >= 48) && (code <= 57)) {
		obj.value = '' + (code - 48);
		if ((obj.name.indexOf('oldPin') == 0) && (obj.name != 'oldPin4')) {
			obj.form.elements['oldPin' + (parseInt(obj.name.substring(6)) + 1)].focus();
		} else if ((obj.name.indexOf('pin') == 0) && (obj.name != 'pin4')) {
			obj.form.elements['pin' + (parseInt(obj.name.substring(3)) + 1)].focus();
		} else if ((obj.name.indexOf('rePin') == 0) && (obj.name != 'rePin4')) {
			obj.form.elements['rePin' + (parseInt(obj.name.substring(5)) + 1)].focus();
		}
		return false;
	}
	if ((code >= 97) && (code <= 122)) {
		obj.value = '';
		return false;
	}
	return true;
}

function keyDownOnPin(e, obj) {
	if (typeof e == 'undefined') {
		e = window.event;
	}
	if (e) {
		var keyCode = e.keyCode ? e.keyCode : e.charCode;
		if (keyCode == 8) {
			if (obj.value.length == 0) {
				if ((obj.name.indexOf('oldPin') == 0) && (obj.name != 'oldPin1')) {
					var field = obj.form.elements['oldPin' + (parseInt(obj.name.substring(6)) - 1)];
					setCaretPosition(field, field.value.length);
				} else if ((obj.name.indexOf('pin') == 0) && (obj.name != 'pin1')) {
					var field = obj.form.elements['pin' + (parseInt(obj.name.substring(3)) - 1)];
					setCaretPosition(field, field.value.length);
				} else if ((obj.name.indexOf('rePin') == 0) && (obj.name != 'rePin1')) {
					var field = obj.form.elements['rePin' + (parseInt(obj.name.substring(5)) - 1)];
					setCaretPosition(field, field.value.length);
				}
			} else {
				var position = getCaretPosition(obj);
				if (position > 0) {
					obj.value = obj.value.substr(0, obj.value.length - 1);
				}
			}
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}

function keyPressOnPhone(e, obj) {
	var code = window.event ? e.keyCode : e.which;
	if ((code >= 48) && (code <= 57)) {
		var s = getSelection(obj);
		var selectionStart = s.start;
		var selectionEnd = s.end;
		if (selectionStart != selectionEnd) {
			obj.value = obj.value.substring(0, selectionStart) + obj.value.substring(selectionEnd);
		}
		if (obj.value.length < obj.getAttribute('maxlength')) {
			obj.value = obj.value.substring(0, selectionStart) + ('' + (code - 48)) + obj.value.substring(selectionStart);
			setCaretPosition(obj, selectionStart + 1);
		}
		var prefix = obj.name.substring(0, obj.name.indexOf('PhonePart'));
		if ((obj.name.indexOf(prefix + 'PhonePart') == 0) && (obj.name != (prefix + 'PhonePart3')) && (obj.value.length == obj.getAttribute('maxlength'))) {
			var field = obj.form.elements[prefix + 'PhonePart' + (parseInt(obj.name.substring(prefix.length + 9)) + 1)];
			setCaretPosition(field, 0);
		}
		return false;
	}
	if ((code >= 97) && (code <= 122)) {
		return false;
	}
	return true;
}

function keyDownOnPhone(e, obj) {
	if (typeof e == 'undefined') {
		e = window.event;
	}
	if (e) {
		var keyCode = e.keyCode ? e.keyCode : e.charCode;
		if (keyCode == 8) {
			if (obj.value.length == 0) {
				var prefix = obj.name.substring(0, obj.name.indexOf('PhonePart'));
				if ((obj.name.indexOf(prefix + 'PhonePart') == 0) && (obj.name != (prefix + 'PhonePart1'))) {
					var field = obj.form.elements[prefix + 'PhonePart' + (parseInt(obj.name.substring(prefix.length + 9)) - 1)];
					setCaretPosition(field, field.value.length);
				}
			} else {
				var s = getSelection(obj);
				var selectionStart = s.start;
				var selectionEnd = s.end;
				if ((selectionStart == selectionEnd) && (selectionStart > 0)) {
					obj.value = obj.value.substring(0, selectionStart - 1) + obj.value.substring(selectionStart);
					setCaretPosition(obj, selectionStart - 1);
				} else {
					obj.value = obj.value.substring(0, selectionStart) + obj.value.substring(selectionEnd);
					setCaretPosition(obj, selectionStart);
				}
			}
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}

function swapPinRequired(yes) {
	var chbYes = document.getElementById('pinRequiredYES');
	var chbNo = document.getElementById('pinRequiredNO');
	if (chbYes && chbNo) {
		if (yes) {
			chbNo.checked = !chbYes.checked;
		} else {
			chbYes.checked = !chbNo.checked;
		}
	}
}

function showDarkGlassPane2() {
	var div = tpGet('tpGlassPaneDarkDiv');
	var ua = navigator.userAgent.toLowerCase();
	if (!showDarkGlassPaneInit) {
		if (ua.indexOf('msie') != -1) {
			div.parentNode.removeChild(div);
			document.body.insertBefore(div, document.body.childNodes[0]);
			div = tpGet('tpGlassPaneDarkDiv');
			div.style.position = 'absolute';
			div.style.setExpression("width", "document.body.clientWidth");
			div.style.setExpression("height", "document.body.clientHeight");
			div.style.setExpression("top", "(document.body.scrollTop) + 'px'");
			div.style.setExpression("left", "(document.body.scrollLeft) + 'px'");
			document.body.onscroll = function () {
				tpGet('tpGlassPaneDarkDiv').style.top = (document.body.scrollTop) + 'px';
				tpGet('tpGlassPaneDarkDiv').style.left = (document.body.scrollLeft) + 'px';
			};
		} else {
			div.style.height = document.body.clientHeight;
			div.style.position = 'fixed';
			document.body.onscroll = function () {
				tpGet('tpGlassPaneDarkDiv').style.top = (document.body.scrollTop) + 'px';
				tpGet('tpGlassPaneDarkDiv').style.left = (document.body.scrollLeft) + 'px';
			};
		}
		showDarkGlassPaneInit = true;
	}
	div.style.display = 'block';
	disableSelects();
}

function showDarkGlassPane2() {
	var div = tpGet('tpGlassPaneDarkDiv');
	var isIE = (navigator.userAgent.toLowerCase().indexOf('msie') != -1);
	if (!showDarkGlassPaneInit) {
		if (isIE) {
			div.parentNode.removeChild(div);
			document.body.insertBefore(div, document.body.childNodes[0]);
			div = tpGet('tpGlassPaneDarkDiv');
			div.style.position = 'absolute';
		} else {
			div.style.position = 'fixed';
		}
		document.body.onscroll = function () {
			tpGet('tpGlassPaneDarkDiv').style.top = (document.body.scrollTop) + 'px';
			tpGet('tpGlassPaneDarkDiv').style.left = (document.body.scrollLeft) + 'px';
		};
		showDarkGlassPaneInit = true;
	}
	if (isIE) {
		div.style.setExpression("width", "document.body.clientWidth");
		div.style.setExpression("height", "document.body.clientHeight");
		div.style.top = document.body.scrollTop;
		div.style.left = document.body.scrollLeft;
	} else {
		div.style.height = document.body.clientHeight;
	}
	div.style.display = 'block';
	disableSelects();
}

var popupInit = false;
var lastId = '';

function showPopup2(id) {
	showDarkGlassPane2();
	var w, h;
	var obj = tpGet(id);
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf('msie') == -1) {
		obj.style.position = 'fixed';
		obj.style.zIndex = 99998;
		obj.style.display = 'block';
		w = obj.offsetWidth;
		h = obj.offsetHeight;
		obj.style.left = parseInt((document.body.clientWidth - w) / 2, 10);
		obj.style.top = parseInt((document.body.clientHeight - h) / 2, 10);
	} else {
		if (!popupInit || (id != lastId && (lastId != ''))) {
			popupInit = true;
			obj.parentNode.removeChild(obj);
			document.body.insertBefore(obj, document.body.childNodes[0]);
			obj = tpGet(id);
		}
		lastId = id;
		obj.style.position = 'absolute';
		obj.style.zIndex = 99998;
		obj.style.display = 'block';
		w = obj.offsetWidth;
		h = obj.offsetHeight;
		obj.style.left = parseInt((document.body.clientWidth - w) / 2, 10);
		obj.style.top = document.body.scrollTop + parseInt((document.body.clientHeight - h) / 2, 10);
	}
	try {
		var close = tpGet('tpPopupCloseButton');
		close.style.display = "block";
	} catch (e) {}
}

function GetTopLeft(elm, parentClass) {
	var x, y = 0;
	var c = '';
	var ua = navigator.userAgent.toLowerCase();
	if (ua.indexOf('msie') == -1) {
		c = 'class';
	} else {
		c = 'className';
	}
	if (!parentClass) {
		var parentClass = 'popup';
	}
	x = elm.offsetLeft;
	y = elm.offsetTop;
	elm = elm.offsetParent;
	while ((elm !== null) && (elm.getAttribute(c) != parentClass)) {
		x = parseInt(x, 10) + parseInt(elm.offsetLeft, 10);
		y = parseInt(y, 10) + parseInt(elm.offsetTop, 10);
		elm = elm.offsetParent;
	}
	return {
		Top: y,
		Left: x
	};
}

function showtip(id, parentClass) {
	if (tpGet(id + 'tip').style.display == 'block') {
		hidetip(id);
		return false;
	}
	var dim = GetTopLeft(tpGet(id), parentClass);
	tpGet(id + 'tip').style.left = (dim.Left + tpGet(id).offsetWidth + 25) + 'px';
	tpGet(id + 'tip').style.top = (dim.Top - 8) + 'px';
	tpGet(id + 'tip').style.display = 'block';
	return false;
}

function hidetip(id) {
	tpGet(id + 'tip').style.display = 'none';
	return false;
}

function handleOnlyDigits(e) {
	if (!e) {
		var e = window.event;
	}
	if (e.keyCode) {
		if ((e.keyCode < 45) || (e.keyCode > 57)) {
			e.returnValue = false;
		}
	} else if (e.which) {
		if ((e.which < 45) || (e.which > 57)) {
			return false;
		}
	}
}
