//=================getProdCodeIndex===============//
// Param: Product sku name. //
// Returns: Index number of product sku. //
// //
var prodCodeHash = new Array();
prodCodeHash["CB"] = 1;
prodCodeHash["CIP"] = 2;
prodCodeHash["SCB"] = 3;
prodCodeHash["PCB"] = 4;
prodCodeHash["BC"] = 5;
prodCodeHash["SCBPSM"] = 6;
prodCodeHash["ENDOW"] = 7;
function getProdCodeIndex(prodCode){
var returnVal = prodCodeHash[prodCode];
if(isNaN(String(returnVal))){
returnVal = 0;
}
return returnVal;
}
//================================================//
//=================getProdCodeName================//
// Param: Index number. //
// Returns: Name of product sku. //
// //
var prodCodeArray = new Array();
prodCodeArray[1] = "CB";
prodCodeArray[2] = "CIP";
prodCodeArray[3] = "SCB";
prodCodeArray[4] = "PCB";
prodCodeArray[5] = "BC";
prodCodeArray[6] = "SCBPSM";
prodCodeArray[7] = "ENDOW";
function getProdCodeName(index){
var returnVal = "";
var tmpIndex = parseInt(index, 10);
if(tmpIndex >= 1 && tmpIndex <= 7){
returnVal = String(prodCodeArray[tmpIndex]);
}
return returnVal;
}
//================================================//
//=================getProdCodeTitle===============//
// Param: Index number or product name. //
// Returns: Product Title. //
// //
var prodCodeTitleArray = new Array();
prodCodeTitleArray[1] = "Conservation Biology";
prodCodeTitleArray[2] = "Conservation In Practice";
prodCodeTitleArray[3] = "SCB Membership";
prodCodeTitleArray[4] = "Pacific Conservation Biology";
prodCodeTitleArray[5] = "Biological Conservation";
prodCodeTitleArray[6] = "SCB Programs and Awards";
prodCodeTitleArray[7] = "SCB Endowment";
var prodCodeTitleHash = new Array();
prodCodeTitleHash["CB"] = prodCodeTitleArray[1];
prodCodeTitleHash["CIP"] = prodCodeTitleArray[2];
prodCodeTitleHash["SCB"] = prodCodeTitleArray[3];
prodCodeTitleHash["PCB"] = prodCodeTitleArray[4];
prodCodeTitleHash["BC"] = prodCodeTitleArray[5];
prodCodeTitleHash["SCBPSM"] = prodCodeTitleArray[6];
prodCodeTitleHash["ENDOW"] = prodCodeTitleArray[7];
function getProdCodeTitle(value){
var returnVal = "";
if(isNaN(String(value))){
returnVal = String(prodCodeTitleHash[value]);
} else {
var tmpIndex = parseInt(value, 10);
if(tmpIndex >= 1 && tmpIndex <= 7){
returnVal = String(prodCodeTitleArray[tmpIndex]);
}
}
return returnVal;
}
//================================================//
//=================getProdCodeTitle===============//
// Param: Index number of products to write out. //
// //
function writeProductFormVars(index){
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
document.write('');
}
//================================================//
//=================processProducts================//
// Param: Current form document. //
// Returns: boolean error code value. //
// //
function processProducts(form, refreshAddressFlag, validateAddressFlag){
var error = false;
if(refreshAddressFlag == null || refreshAddressFlag == true){
if(form["differentBilling"][0].checked){
refreshAddressForm(form);
}
}
if(validateAddressFlag == null || validateAddressFlag == true){
if(!error) error = validateAddressForm(form);
}
if(!error) error = prepareProduct(form, "CB");
if(!error) error = prepareProduct(form, "CIP");
if(!error) error = prepareProduct(form, "SCB");
if(!error) error = prepareProduct(form, "PCB");
if(!error) error = prepareProduct(form, "BC");
if(!error) error = prepareDonation(form, "SCBPSM");
if(!error) error = prepareDonation(form, "ENDOW");
//if(!error) error = prepareCCtype(form);
if(!error) error = prepareFreeMembership(form);
if(!error) error = prepareAffiliates(form);
if(!error) error = preparePromotions(form);
if(!error) error = preparePriceClass(form);
if(!error) error = prepareOrderType(form);
if(!error) error = prepareOvrPriceFlag(form, "SCB", "Y");
if(!error) error = prepareEmailMessage(form);
return !error;
}
//=================validateAddressForm============//
// Param: Current form document. //
// Returns: boolean error code value. //
// //
function validateAddressForm(form){
var error = false;
var message = "";
var messageST = "";
if(form["FirstName"].value.length == 0) message += "- First Name\n";
if(form["LastName"].value.length == 0) message += "- Last Name\n";
if(form["StreetAdr"].value.length == 0) message += "- Street Address\n";
if(form["City"].value.length == 0) message += "- City\n";
if(form["Country"].selectedIndex == 0 && form["State"].selectedIndex == 0){
message += "- State, Province, Country\n";
}
if(form["EmailAdr"].value.length == 0) message += "- Email Address\n";
if(form["differentBilling"][0].checked){
if(form["FirstNameST"].value.length == 0) messageST += "- First Name\n";
if(form["LastNameST"].value.length == 0) messageST += "- Last Name\n";
if(form["StreetAdrST"].value.length == 0) messageST += "- Street Address\n";
if(form["CityST"].value.length == 0) messageST += "- City\n";
if(form["CountryST"].selectedIndex == 0 && form["StateST"].selectedIndex == 0){
messageST += "- State, Province, Country\n";
}
}
// else if(form["differentBilling"][1].checked){
// if(form["FirstNameST"].value.toLowerCase() != form["FirstName"].value.toLowerCase())
// messageST += " - First Name must be the same on an alternate shipping address\n";
// if(form["LastNameST"].value.toLowerCase() != form["LastName"].value.toLowerCase())
// messageST += " - Last Name must be the same on an alternate shipping address\n";
// } else if(form["differentBilling"][2].checked){
// if(form["FirstNameST"].value.toLowerCase() == form["FirstName"].value.toLowerCase() &&
// form["LastNameST"].value.toLowerCase() == form["LastName"].value.toLowerCase())
// messageST += " - First or Last Name must be different on an order for a friend\n";
// } else {messageST += " - Please select a shipping address option.\n";}
if(message.length > 0 || messageST.length > 0){
if(message.length > 0){
message = "BILLING INFORMATION ERROR(S):\n\n" + message;
}
if(messageST.length > 0){
messageST = "SHIPPING INFORMATION ERROR(S):\n\n" + messageST;
if(message.length > 0){ messageST = "\n" + messageST;}
}
window.alert(message + messageST);
error = true;
}
if(!error){
if(form["CountryFullName"] != null){
form["CountryFullName"].value = form["Country"].options[form["Country"].selectedIndex].text;
}
if(form["CountryFullNameST"] != null){
form["CountryFullNameST"].value = form["CountryST"].options[form["CountryST"].selectedIndex].text;
}
}
return error;
}
//================================================//
//=================prepareProduct=================//
// Param: Current form document, product name //
// Returns: boolean error code value. //
// //
function prepareProduct(form, prodCode){
var error = false;
var foundCount = 0;
var foundIndex = 0;
for(var ii = 0; ii < form[prodCode + "Product"].length; ii++){
if(form[prodCode + "Product"][ii].checked){
if(++foundCount > 1){
window.alert("Please select only one " + getProdCodeTitle(prodCode) + " offer.");
form[prodCode + "Product"][foundIndex].focus();
error = true;
break;
} else {
foundIndex = ii;
}
}
}
if(foundCount == 1){
var prodIndex = getProdCodeIndex(prodCode);
var productArray = form[prodCode + "Product"][foundIndex].value.split("#");
form["PRICE_CLASS" + prodIndex].value = productArray[0]; //Index 0: PriceClass
form["ProdCode" + prodIndex].value = productArray[1]; //Index 1: ProdCode
form["BillType" + prodIndex].value = productArray[2]; //Index 2: BillType
form["Promotion" + prodIndex].value = productArray[3]; //Index 3: Promotion
form["Price" + prodIndex].value = productArray[4]; //Index 4: Price
form["Qty" + prodIndex].value = productArray[5]; //Index 5: Qty
form["Term" + prodIndex].value = productArray[6]; //Index 6: Term
form["LevelQLA" + prodIndex].value = productArray[7]; //Index 7: LevlQLA
form["TypeQLB" + prodIndex].value = productArray[8]; //Index 8: TypeQLB
form["ENABLED" + prodIndex].value = "TRUE";
} else {
resetProduct(form, prodCode);
}
return error;
}
//================================================//
function prepareDonation(form, prodCode){
var error = false;
var process = false;
if(!isPriceZero(form[prodCode + "Donation"].value)){
process = true;
} else {
if(!isValidPrice(form[prodCode + "Donation"].value)){
window.alert("Donation amount for " + getProdCodeTitle(prodCode) + " is not valid.");
error = true;
}
}
if(!error && process){
var prodIndex = getProdCodeIndex(prodCode);
productArray = form[prodCode + "Product"].value.split("#");
form["ProdCode" + prodIndex].value = productArray[1]; //Index 1: ProdCode
form["BillType" + prodIndex].value = productArray[2]; //Index 2: BillType
form["Promotion" + prodIndex].value = productArray[3]; //Index 3: Promotion
form["Price" + prodIndex].value = getFormattedPrice(form[prodCode + "Donation"].value);
form["Qty" + prodIndex].value = productArray[5]; //Index 5: Qty
form["Term" + prodIndex].value = productArray[6]; //Index 6: Term
form["LevelQLA" + prodIndex].value = productArray[7]; //Index 7: LevlQLA
form["TypeQLB" + prodIndex].value = productArray[8]; //Index 8: TypeQLB
form["ENABLED" + prodIndex].value = "TRUE";
} else {
resetProduct(form, prodCode)
}
return error;
}
function prepareEmailMessage(form){
if(form["EMAIL_ItemsPurchased"] != null){
form["EMAIL_ItemsPurchased"].value = "";
for(var ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){
form["EMAIL_ItemsPurchased"].value = form["EMAIL_ItemsPurchased"].value + getProdCodeTitle(ii) + "\r\n";
}
}
}
var paymentIndex = 0;
if(form["EMAIL_PaymentType"] != null && form["CCType"] != null){
for(var ii = 0; ii < form["CCType"].length; ii++){
if(form["CCType"][ii].checked){
paymentIndex = ii;
break;
}
}
if(paymentIndex < 3){
form["EMAIL_PaymentType"].value = "credit card";
} else if(paymentIndex == 3){
form["EMAIL_PaymentType"].value = "bank wire";
} else if(paymentIndex == 4){
form["EMAIL_PaymentType"].value = "check or money order";
} else if(paymentIndex == 5){
form["EMAIL_PaymentType"].value = "faxing credit card";
} else if(paymentIndex == 6){
form["EMAIL_PaymentType"].value = "purchase order";
}
}
return false;
}
function prepareFreeMembership(form){
var error = false;
var prodIndex = 0;
var theTerm;
if(form["ENABLED" + getProdCodeIndex("CB")].value == "TRUE" || form["ENABLED" + getProdCodeIndex("CIP")].value == "TRUE"){
if(form["Term" + getProdCodeIndex("CB")].value == "999" || form["Term" + getProdCodeIndex("CIP")].value == "999"){
theTerm = "999";
} else if(form["Term" + getProdCodeIndex("CIP")].value == "8"){
theTerm = "24";
} else {
theTerm = "12";
}
resetProduct(form, "SCB");
prodIndex = getProdCodeIndex("SCB");
form["ProdCode" + prodIndex].value = "SCB";
form["BillType" + prodIndex].value = "PAID";
form["Promotion" + prodIndex].value = "W[M1][M2][Y3][Y4]";
if(form["ENABLED" + getProdCodeIndex("CB")].value == "TRUE"){
if(form["Term" + getProdCodeIndex("CB")].value == "999"){
form["Price" + prodIndex].value = "400.00";
} else {
if(form["TypeQLB" + getProdCodeIndex("CB")].value != "STU" && form["PRICE_CLASS" + getProdCodeIndex("CB")].value != "DEVC"){
form["Price" + prodIndex].value = "15.00";
} else {
form["Price" + prodIndex].value = "0.00";
}
}
} else {
form["Price" + prodIndex].value = "0.00";
}
form["Qty" + prodIndex].value = "1";
form["Term" + prodIndex].value = theTerm;
form["LevelQLA" + prodIndex].value = "REG";
form["TypeQLB" + prodIndex].value = "SNGL";
form["ENABLED" + prodIndex].value = "TRUE";
}
return error;
}
function prepareAffiliates(form){
var error = false;
if(form["ENABLED" + getProdCodeIndex("PCB")].value == "TRUE" || form["ENABLED" + getProdCodeIndex("BC")].value == "TRUE"){
if(form["ENABLED" + getProdCodeIndex("CB")].value != "TRUE" && form["ENABLED" + getProdCodeIndex("CIP")].value != "TRUE" && form["ENABLED" + getProdCodeIndex("SCB")].value != "TRUE"){
for(ii = 0; ii < form["PCBProduct"].length; ii++){
if(!error && form["PCBProduct"][ii].checked){
window.alert("SCB Affiliates, Pacific Conservation Biology and Biological Conservation, require a membership selection.\n* Your current SCB Affiliates selection(s) will be removed. *");
error = true;
}
form["PCBProduct"][ii].checked = false;
}
form["ENABLED" + getProdCodeIndex("PCB")].value = "FALSE";
for(ii = 0; ii < form["BCProduct"].length; ii++){
if(!error && form["BCProduct"][ii].checked){
window.alert("SCB Affiliates, Pacific Conservation Biology and Biological Conservation, require a membership selection.\n* Your current SCB Affiliates selection(s) will be removed. *");
error = true;
}
form["BCProduct"][ii].checked = false;
}
form["ENABLED" + getProdCodeIndex("BC")].value = "FALSE";
}
}
return error;
}
function preparePromotions(form){
form["PromotionBox"].value = String(form["PromotionBox"].value).toUpperCase();
var error = false;
var updatedPromotions = false;
var promotion = form["PromotionBox"].value;
if(String(promotion) == "undefined"){
promotion = "";
}
if(promotion.length > 0){
if(promotion.toUpperCase() == "COMBO"){
if(form["ENABLED" + getProdCodeIndex("CB")].value == "TRUE"
&& form["Term" + getProdCodeIndex("CB")].value == "6"
&& form["ENABLED" + getProdCodeIndex("CIP")].value == "TRUE"
&& form["Term" + getProdCodeIndex("CIP")].value == "4"
){
updatePromotion(form, "COMBO");
updatedPromotions = true;
}
} else {
for(var jj = 0; jj < promotion.length; jj++){
if(promotion.charAt(jj) != ' '){
updatePromotion(form, promotion);
updatedPromotions = true;
break;
}
}
}
}
if(!updatedPromotions){
var DateObject = new Date();
var cMonth = ("00" + String((DateObject.getMonth() + 1))).substring(String((DateObject.getMonth() + 1)).length);
var cYear = ("0000" + String(DateObject.getYear())).substring(String(DateObject.getYear()).length);
var originalSource;
var thePosition;
//Replace [M1] [M2] [Y1] [Y2] [Y3] [Y4]
for(var ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){
originalSource = form["Promotion" + ii].value;
while((thePosition = originalSource.indexOf("[M1]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cMonth.substring(0,1) + originalSource.substring(thePosition + 4);
}
while((thePosition = originalSource.indexOf("[M2]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cMonth.substring(1,2) + originalSource.substring(thePosition + 4);
}
while((thePosition = originalSource.indexOf("[Y1]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cYear.substring(0,1) + originalSource.substring(thePosition + 4);
}
while((thePosition = originalSource.indexOf("[Y2]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cYear.substring(1,2) + originalSource.substring(thePosition + 4);
}
while((thePosition = originalSource.indexOf("[Y3]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cYear.substring(2,3) + originalSource.substring(thePosition + 4);
}
while((thePosition = originalSource.indexOf("[Y4]", 0)) != -1){
originalSource = originalSource.substring(0, thePosition) + cYear.substring(3,4) + originalSource.substring(thePosition + 4);
}
form["Promotion" + ii].value = originalSource;
}
}
//updatePromotion(form, "W05");
}
return error;
}
function prepareOvrPriceFlag(form, pubCode, value){
if(value != null){
form["OvrPriceFlag" + getProdCodeIndex(pubCode)].value = String(value);
}
return false;
}
function preparePriceClass(form){
var priceClassList = new Array();
var currentPriceClass = "";
var found = false;
var error = false;
var ii = 0;
var focusPoint = "";
for(ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){
priceClassList[priceClassList.length] = new Array();
priceClassList[priceClassList.length - 1][0] = getProdCodeTitle(ii);
priceClassList[priceClassList.length - 1][1] = form["PRICE_CLASS" + ii].value;
if(form["PRICE_CLASS" + ii].value != ""){
if(!found){
currentPriceClass = form["PRICE_CLASS" + ii].value;
found = true;
} else {
if(form["PRICE_CLASS" + ii].value != currentPriceClass){
if(focusPoint == ""){
focusPoint = form["ProdCode" + ii].value;
}
error = true;
}
}
}
}
}
if(found){
if(!error){
form["PriceClass"].value = currentPriceClass;
} else {
var message = "";
for(ii = 0; ii < priceClassList.length; ii++){
if(priceClassList[ii][1] != ""){
message += "Product: " + priceClassList[ii][0] + "\nSelected Locale: ";
if(priceClassList[ii][1] == "STND"){
message += "USA";
} else if(priceClassList[ii][1] == "CANA"){
message += "Canada";
} else if(priceClassList[ii][1] == "FRGN"){
message += "Other Developed Countries";
} else if(priceClassList[ii][1] == "DEVC"){
message += "All Developing Countries";
}
message += "\n\n";
}
}
window.alert("Error - Multiple Locations were selected:\n\n" + message);
if(form[focusPoint + "Product"] != null){
form[focusPoint + "Product"][0].focus();
}
error = true;
}
} else {
if(priceClassList.length > 0){
form["PriceClass"].value = "STND";
} else {
window.alert("At least one product must be selected.");
error = true;
}
}
return error;
}
function prepareCCtype(form){
var error = false;
var enabledCount = 0;
for(ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){ enabledCount++; }
}
if(enabledCount == 1 && form["ENABLED" + getProdCodeIndex("CIP")].value == "TRUE"){
if(
form["CCType"][3].checked == true ||
form["CCType"][4].checked == true ||
form["CCType"][5].checked == true ||
form["CCType"][6].checked == true
){
form["PayTerm"].value = "CR";
} else {
form["PayTerm"].value = "CC";
}
} else {
if(
form["CCType"][3].checked == true ||
form["CCType"][4].checked == true ||
form["CCType"][5].checked == true ||
form["CCType"][6].checked == true
){
window.alert("Send payment later option is ONLY available for " + getProdCodeTitle("CIP") + " purchase.");
form["CCType"][3].checked = false;
form["CCType"][3].disabled = true;
form["CCType"][4].checked = false;
form["CCType"][4].disabled = true;
form["CCType"][5].checked = false;
form["CCType"][5].disabled = true;
form["CCType"][6].checked = false;
form["CCType"][6].disabled = true;
error = true;
}
form["PayTerm"].value = "CC";
}
return error;
}
function prepareOrderType(form){
var error = false;
if(form["differentBilling"][2].checked){
if(form["isRenewalType"] == null || form["isRenewalType"].value != "1"){
form["OrderType"].value = "NBGiftOrder";
} else {
form["OrderType"].value = "NBGiftRenew";
}
updateBillType(form, "GIFT");
} else {
if(form["isRenewalType"] == null || form["isRenewalType"].value != "1"){
form["OrderType"].value = "NBNewOrder";
} else {
form["OrderType"].value = "NBNewRenew";
}
}
if(form["ENABLED" + getProdCodeIndex("SCB")].value == "FALSE"){
form["iResponseEmail"].value = "SCCN.NEWORDER";
} else {
form["iResponseEmail"].value = "SCCN.NEW ORDER MBR";
}
return error;
}
function resetProduct(form, prodCode){
var prodIndex = getProdCodeIndex(prodCode);
form["PRICE_CLASS" + prodIndex].value = "";
form["ProdCode" + prodIndex].value = "";
form["BillType" + prodIndex].value = "";
form["Promotion" + prodIndex].value = "";
form["Price" + prodIndex].value = "";
form["Qty" + prodIndex].value = "";
form["Term" + prodIndex].value = "";
form["LevelQLA" + prodIndex].value = "";
form["TypeQLB" + prodIndex].value = "";
form["ENABLED" + prodIndex].value = "FALSE";
}
function updateBillType(form, value){
for(var ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){
form["BillType" + ii].value = value;
}
}
}
function updatePromotion(form, value){
for(var ii = 1; ii <= parseInt(form["TOTAL_PRODUCTS"].value, 10); ii++){
if(form["ENABLED" + ii].value == "TRUE"){
form["Promotion" + ii].value = value;
}
}
}
function refreshAddressForm(form){
if(form["FirstNameST"].value != form["FirstName"].value)
form["FirstNameST"].value = form["FirstName"].value;
if(form["LastNameST"].value != form["LastName"].value)
form["LastNameST"].value = form["LastName"].value;
if(form["CompanyST"].value != form["Company"].value)
form["CompanyST"].value = form["Company"].value;
if(form["StreetAdrST"].value != form["StreetAdr"].value)
form["StreetAdrST"].value = form["StreetAdr"].value;
if(form["SuppAdrST"].value != form["SuppAdr"].value)
form["SuppAdrST"].value = form["SuppAdr"].value;
if(form["CityST"].value != form["City"].value)
form["CityST"].value = form["City"].value;
if(form["PostalCodeST"].value != form["PostalCode"].value)
form["PostalCodeST"].value = form["PostalCode"].value;
if(form["CountryST"].selectedIndex != form["Country"].selectedIndex)
form["CountryST"].selectedIndex = form["Country"].selectedIndex;
if(form["StateST"].selectedIndex != form["State"].selectedIndex)
form["StateST"].selectedIndex = form["State"].selectedIndex;
}
function areAddressFormsEqual(form){
if(form["FirstNameST"].value.toLowerCase() != form["FirstName"].value.toLowerCase())
return false;
if(form["LastNameST"].value.toLowerCase() != form["LastName"].value.toLowerCase())
return false;
if(form["CompanyST"].value.toLowerCase() != form["Company"].value.toLowerCase())
return false;
if(form["StreetAdrST"].value.toLowerCase() != form["StreetAdr"].value.toLowerCase())
return false;
if(form["SuppAdrST"].value.toLowerCase() != form["SuppAdr"].value.toLowerCase())
return false;
if(form["CityST"].value.toLowerCase() != form["City"].value.toLowerCase())
return false;
if(form["PostalCodeST"].value.toLowerCase() != form["PostalCode"].value.toLowerCase())
return false;
if(form["CountryST"].selectedIndex != form["Country"].selectedIndex)
return false;
if(form["StateST"].selectedIndex != form["State"].selectedIndex)
return false;
return true;
}
function areAddressFormsBlank(form){
if(form["CompanyST"].value != "" || form["Company"].value != "")
return false;
if(form["StreetAdrST"].value != "" || form["StreetAdr"].value != "")
return false;
if(form["SuppAdrST"].value != "" || form["SuppAdr"].value != "")
return false;
if(form["CityST"].value != "" || form["City"].value != "")
return false;
if(form["PostalCodeST"].value != "" || form["PostalCode"].value != "")
return false;
return true;
}
function manageBillingAddressFocus(form){
if(!form["differentBilling"][0].checked){
if(!areAddressFormsBlank(form) && areAddressFormsEqual(form)){
form["differentBilling"][0].checked = false;
}
} else {
refreshAddressForm(form);
}
}
function manageMailingAddressFocus(form){
if(!areAddressFormsBlank(form)){
if(form["differentBilling"][0].checked){
refreshAddressForm(form);
} else if(form["differentBilling"][1].checked){
}
}
}
function manageCheckbox(element, prodCode){
var thisForm = element.form;
if(element.checked){
for(var ii = 0; ii < thisForm[prodCode + "Product"].length; ii++){
if(element != thisForm[prodCode + "Product"][ii]){
thisForm[prodCode + "Product"][ii].checked = false;
}
}
thisForm["ENABLED" + getProdCodeIndex(prodCode)].value = "TRUE";
} else {
thisForm["ENABLED" + getProdCodeIndex(prodCode)].value = "FALSE";
}
manageFreeMembership(element, prodCode);
manageAffiliates(element, prodCode);
managePriceClassDisables(element);
//manageBillMeLaterDisables(element);
}
function manageDonation(element, prodCode){
if(!isPriceZero(element.value)){
element.form[prodCode + "Donation"].value = getFormattedPrice(element.value);
element.form["ENABLED" + getProdCodeIndex(prodCode)].value = "TRUE";
} else {
element.form[prodCode + "Donation"].value = "0.00";
element.form["ENABLED" + getProdCodeIndex(prodCode)].value = "FALSE";
}
manageFreeMembership(element, prodCode);
//manageBillMeLaterDisables(element);
}
function manageBillMeLaterDisables(element){
var thisForm = element.form;
var enabledCount = 0;
for(ii = 1; ii <= parseInt(thisForm["TOTAL_PRODUCTS"].value, 10); ii++){
if(thisForm["ENABLED" + ii].value == "TRUE"){ enabledCount++; }
}
if(enabledCount == 1 && thisForm["ENABLED" + getProdCodeIndex("CIP")].value == "TRUE"){
thisForm["CCType"][3].disabled = false;
thisForm["CCType"][4].disabled = false;
thisForm["CCType"][5].disabled = false;
thisForm["CCType"][6].disabled = false;
} else {
thisForm["CCType"][3].checked = false;
thisForm["CCType"][3].disabled = true;
thisForm["CCType"][4].checked = false;
thisForm["CCType"][4].disabled = true;
thisForm["CCType"][5].checked = false;
thisForm["CCType"][5].disabled = true;
thisForm["CCType"][6].checked = false;
thisForm["CCType"][6].disabled = true;
}
}
function managePriceClassDisables(element){
var thisForm = element.form;
var curPriceClass = "";
var productLength = 5;
var enabledCount = 0;
var ii, jj;
if(!element.checked && thisForm["DISABLE_NPC"].value != "FALSE"){
for(ii = 1; ii <= productLength; ii++){
if(thisForm["ENABLED" + ii].value == "TRUE"){ enabledCount++; }
}
if(enabledCount == 0){
thisForm["PriceClass"].value = "";
thisForm["DISABLE_NPC"].value = "FALSE";
for(ii = 1; ii <= productLength; ii++){
for(jj = 0; jj < thisForm[getProdCodeName(ii) + "Product"].length; jj++){
thisForm[getProdCodeName(ii) + "Product"][jj].disabled = false;
}
}
}
} else {
for(ii = 1; ii <= productLength; ii++){
if(thisForm["ENABLED" + ii].value == "TRUE"){ enabledCount++; }
}
if(enabledCount == 1){
thisForm["PriceClass"].value = curPriceClass = element.value.substring(0,4);
thisForm["DISABLE_NPC"].value = "TRUE";
for(ii = 1; ii <= productLength; ii++){
for(jj = 0; jj < thisForm[getProdCodeName(ii) + "Product"].length; jj++){
if(curPriceClass != thisForm[getProdCodeName(ii) + "Product"][jj].value.substring(0,4)){
thisForm[getProdCodeName(ii) + "Product"][jj].disabled = true;
}
}
}
}
}
}
function manageFreeMembership(element, prodCode){
var thisForm = element.form;
if(thisForm["ENABLED" + getProdCodeIndex("SCB")].value == "TRUE"){
if(thisForm["ENABLED" + getProdCodeIndex("CB")].value == "TRUE" || thisForm["ENABLED" + getProdCodeIndex("CIP")].value == "TRUE"){
var found = false;
for(ii = 0; ii < thisForm["SCBProduct"].length; ii++){
if(!found && thisForm["SCBProduct"][ii].checked){
window.alert("Conservation Biology and Conservation In Practice subscription includes a FREE SCB membership. \nYour current SCB Membership will be unselected.");
found = true;
}
thisForm["SCBProduct"][ii].checked = false;
}
element.form["ENABLED" + getProdCodeIndex("SCB")].value = "FALSE";
} else {
if((prodCode == "CB" || prodCode == "CIP") && !element.checked){
resetProduct(element.form, "SCB");
}
}
}
}
function manageAffiliates(element, prodCode){
var thisForm = element.form;
var found = false;
if(thisForm["ENABLED" + getProdCodeIndex("PCB")].value == "TRUE" || thisForm["ENABLED" + getProdCodeIndex("BC")].value == "TRUE"){
if(thisForm["ENABLED" + getProdCodeIndex("CB")].value != "TRUE" && thisForm["ENABLED" + getProdCodeIndex("CIP")].value != "TRUE" && thisForm["ENABLED" + getProdCodeIndex("SCB")].value != "TRUE"){
for(ii = 0; ii < thisForm["PCBProduct"].length; ii++){
if(!found && thisForm["PCBProduct"][ii].checked){
window.alert("SCB Affiliates, Pacific Conservation Biology and Biological Conservation, require a membership selection.\n* Your current SCB Affiliates selection(s) will be removed. *");
found = true;
}
thisForm["PCBProduct"][ii].checked = false;
}
element.form["ENABLED" + getProdCodeIndex("PCB")].value = "FALSE";
for(ii = 0; ii < thisForm["BCProduct"].length; ii++){
if(!found && thisForm["BCProduct"][ii].checked){
window.alert("SCB Affiliates, Pacific Conservation Biology and Biological Conservation, require a membership selection.\n* Your current SCB Affiliates selection(s) will be removed. *");
found = true;
}
thisForm["BCProduct"][ii].checked = false;
}
element.form["ENABLED" + getProdCodeIndex("BC")].value = "FALSE";
}
}
}
function manageAddressForm(element){
var thisForm = element.form;
//Check State - AutoCorrect Country Field
if(element.name == "State" || element.name == "StateST"){
if(element.selectedIndex >= 66){
if(element.name.substring(element.name.length - 2) == "ST"){
thisForm["CountryST"].selectedIndex = 1;
} else {
thisForm["Country"].selectedIndex = 1;
}
} else if(element.selectedIndex >= 1){
if(element.name.substring(element.name.length - 2) == "ST"){
thisForm["CountryST"].selectedIndex = 0;
} else {
thisForm["Country"].selectedIndex = 0;
}
}
}
//Check Country - AutoCorrect State Field
if(element.name == "Country" || element.name == "CountryST"){
if(element.selectedIndex >= 2){
if(element.name.substring(element.name.length - 2) == "ST"){
thisForm["StateST"].selectedIndex = 0;
} else {
thisForm["State"].selectedIndex = 0;
}
} else if(element.selectedIndex == 1) {
if(element.name.substring(element.name.length - 2) == "ST"){
if(thisForm["StateST"].selectedIndex < 66){
thisForm["StateST"].selectedIndex = 66;
}
} else {
if(thisForm["State"].selectedIndex < 66){
thisForm["State"].selectedIndex = 66;
}
}
} else {
if(element.name.substring(element.name.length - 2) == "ST"){
if(thisForm["StateST"].selectedIndex >= 66){
thisForm["StateST"].selectedIndex = 0;
}
} else {
if(thisForm["State"].selectedIndex >= 66){
thisForm["State"].selectedIndex = 0;
}
}
}
}
//Different Billing/Echo Section
if(thisForm["differentBilling"][0].checked){
if(element.name == "differentBilling"){
refreshAddressForm(thisForm);
} else if(element.name == "State" || element.name == "Country"){
thisForm["StateST"].selectedIndex = thisForm["State"].selectedIndex;
thisForm["CountryST"].selectedIndex = thisForm["Country"].selectedIndex;
} else if(element.name.substring(element.name.length - 2) == "ST"){
if(!areAddressFormsEqual(thisForm)){
thisForm["differentBilling"][0].checked = false;
alert("Please select a shipping address option.");
}
} else {
thisForm[element.name + "ST"].value = thisForm[element.name].value;
}
} else if(element.name == "differentBilling" && thisForm["differentBilling"][1].checked){
thisForm["FirstNameST"].value = thisForm["FirstName"].value;
thisForm["LastNameST"].value = thisForm["LastName"].value;
thisForm["CompanyST"].value = "";
thisForm["StreetAdrST"].value = "";
thisForm["SuppAdrST"].value = "";
thisForm["CityST"].value = "";
thisForm["PostalCodeST"].value = "";
thisForm["CountryST"].selectedIndex = 0;
thisForm["StateST"].selectedIndex = 0;
} else if(element.name == "differentBilling" && thisForm["differentBilling"][2].checked) {
thisForm["FirstNameST"].value = "";
thisForm["LastNameST"].value = "";
} else if(areAddressFormsEqual(thisForm)){
thisForm["differentBilling"][0].checked = true;
}
}
function getFormattedPrice(price){
var returnVal = "0.00";
var length = 0;
var difference = 0;
var decimalIndex = -1;
var ii = 0;
var isLeadingZeros = true;
if(isValidPrice(price)){
returnVal = "";
for(ii = 0; ii < price.length; ii++){
if(isLeadingZeros){
if(price.charAt(ii) != '0'){
isLeadingZeros = false;
}
}
if(!isLeadingZeros && price.charAt(ii) != ','){
returnVal += price.charAt(ii);
}
}
if(returnVal.indexOf(".", 0) == -1){
returnVal += ".";
}
if(returnVal.charAt(0) == "."){
returnVal = "0" + returnVal;
}
length = returnVal.length;
decimalIndex = returnVal.indexOf(".", 0);
difference = length - (decimalIndex + 1);
if(difference > 2){
returnVal = returnVal.substring(0, length - (difference - 2));
} else {
for(ii = difference; ii < 2; ii++){
returnVal += "0";
}
}
}
return returnVal;
}
function isValidPrice(price){
var returnVal = true;
var foundDecimal = false;
var leadingZeros = true;
var validDigits = "0123456789";
var numDecimals = 0;
var numLeadingDigits = 0;
for(var ii = 0; ii < price.length; ii++){
if(validDigits.indexOf(price.charAt(ii), 0) == -1){
if(price.charAt(ii) == '.'){
if(++numDecimals > 1){
returnVal = false;
break;
} else {
foundDecimal = true;
}
} else if(price.charAt(ii) != ','){
returnVal = false;
break;
}
} else {
if(leadingZeros){
leadingZeros = (price.charAt(ii) != '0') ? !leadingZeros : leadingZeros;
}
if(!foundDecimal && !leadingZeros){
numLeadingDigits++;
}
}
}
if(numLeadingDigits > 5){
returnVal = false;
}
return returnVal;
}
function isPriceZero(price){
var returnVal = true;
var validZero = ".0";
var tmpPrice = getFormattedPrice(price);
for(var ii = 0; ii < tmpPrice.length; ii++){
if(validZero.indexOf(tmpPrice.charAt(ii), 0) == -1){
returnVal = false;
break;
}
}
return returnVal;
}
function getExpirationStringCast(value, fill){
return (fill == null) ? String(value) : (String(fill) + String(value)).substring(String(value).length);
}
function getExpirationMonth(index){
var ii = String(index);
var returnVal = "";
if(ii == "1"){ returnVal = "January";
} else if(ii == "2"){ returnVal = "February";
} else if(ii == "3"){ returnVal = "March";
} else if(ii == "4"){ returnVal = "April";
} else if(ii == "5"){ returnVal = "May";
} else if(ii == "6"){ returnVal = "June";
} else if(ii == "7"){ returnVal = "July";
} else if(ii == "8"){ returnVal = "August";
} else if(ii == "9"){ returnVal = "September";
} else if(ii == "10"){ returnVal = "October";
} else if(ii == "11"){ returnVal = "November";
} else if(ii == "12"){ returnVal = "December";
}
return returnVal;
}
function getExpirationOptions(){
var DateObject = new Date();
var returnVal = '';
var monthIndex = 0;
var yearIndex = 0;
var ii = 0;
monthIndex = parseInt(DateObject.getMonth() + 1, 10);
yearIndex = parseInt(DateObject.getYear());
if(String(yearIndex).length != 4) yearIndex = 1900 + yearIndex;
if(isNaN(yearIndex)) yearIndex = 2006;
if(isNaN(monthIndex)) monthIndex = 1;
for(ii = 0; ii < 72; ii++){
returnVal += '';
if(++monthIndex > 12){
monthIndex = 1;
yearIndex++;
}
}
return returnVal;
}