var isEmail_re = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
function isValidEmail(s) {
	return String(s).search (isEmail_re) != -1;
}

function checkField(i) {
	var b = true;
	if (i.value.length > 0 && i.value != '') {
		b = false;
	}
	return b;
}

function verifyForm() {
	var r = false;
	var s = document.subscribe;
	var errorMsg = '';
    
    if (s.customerNumber && checkField(s.customerNumber)) {
    	errorMsg+= 'Please provide your customer number.\n';
    }
    
    //if (checkField(s.classRoomSet) || parseInt(s.classRoomSet.value) < 1) {
    //	errorMsg+= 'Please select an item to order.\n';
    //}
    
    // check quantities
    var prevBasic = document.getElementsByName('previousVolume.basicQuantity')[0];
    var currBasic = document.getElementsByName('currentVolume.basicQuantity')[0];
    var currDigital = document.getElementsByName('currentVolume.digitalQuantity')[0];
    var currPremium = document.getElementsByName('currentVolume.premiumQuantity')[0];
      
    if ((checkField(prevBasic) || parseInt(prevBasic.value) < 1) 
    	&& (checkField(currBasic) || parseInt(currBasic.value) < 1) 
    	&& (checkField(currDigital) || parseInt(currDigital.value) < 1) 
    	&& (checkField(currPremium) || parseInt(currPremium.value) < 1))
    {
    	errorMsg+= 'Please select an item to order.\n';
    }
    
    if (checkField(s.shipSchool)){
        errorMsg+= 'Please provide the Ship To School/Organization.\n';
    }
    
    if (checkField(s.shipName)){
        errorMsg+= 'Please provide the Ship To Name, Title.\n';
    }
    if (checkField(s.shipAddress1)){
        errorMsg+= 'Please provide the Ship To Address.\n';
    }
    if (checkField(s.shipCity)){
        errorMsg+= 'Please provide the Ship to City.\n';
    }
    
    if (s.shipCountry[s.shipCountry.selectedIndex].value == 'US' || s.shipCountry[s.shipCountry.selectedIndex].value == 'CC') {
    	if (checkField(s.shipZip)) {
            errorMsg+= 'Please provide the Ship To Zip Code.\n';
        }
        if (s.shipState.selectedIndex == 0) {
            errorMsg+= 'Please select the Ship To State.\n';
        }
    }
    
    if (s.shipCountry.selectedIndex == 0) {
        errorMsg+= 'Please select the Ship To Country.\n';
    }
    
    if (checkField(s.shipPhone)) {
        errorMsg+= 'Please provide the Ship To Phone Number.\n';
    }
    
    if (checkField(s.shipEmail)) {
        errorMsg+= 'Please provide the Ship To Email Address.\n';
	} else {
		if (!isValidEmail(s.shipEmail.value)) {
			errorMsg+= 'The shipping email address is not valid.\n';
		}
	}
    
    if (checkField(s.billSchool)) {
        errorMsg+= 'Please provide the Bill To School/Organization.\n';
    }
    
    if (checkField(s.billName)) {
        errorMsg+= 'Please provide the Bill To Name, Title.\n';
    }
    
    if (checkField(s.billAddress1)) {
        errorMsg+= 'Please provide the Bill To Address.\n';
    }
    
    if (checkField(s.billCity)){
        errorMsg+= 'Please provide the Bill To City.\n';
    }
    
    if (s.billCountry[s.billCountry.selectedIndex].value == 'US' || s.billCountry[s.billCountry.selectedIndex].value == 'CC') {
        if (checkField(s.billZip)){
            errorMsg+= 'Please provide the Bill To Zip Code.\n';
        }
        if (s.billState.selectedIndex == 0){
            errorMsg+= 'Please select the Bill To State.\n';
        }
    }
    
    if (s.billCountry.selectedIndex == 0) {
        errorMsg+= 'Please select the Bill To Country.\n';
    }
    
    if (checkField(s.billPhone)) {
        errorMsg+= 'Please provide the Bill To Phone Number.\n';
    }
    
    if (checkField(s.billEmail)) {
        errorMsg+= 'Please provide the Bill To Email Address.\n';
    } else {
		if (!isValidEmail(s.billEmail.value)) {
			errorMsg+= 'The billing email address is not valid.\n';
		}
	}
    
    if (checkField(s.purchaseOrder)) {
        errorMsg+= 'Please provide a Purchase Order Number.\n';
	}
    
    if (s.heardAboutUs.selectedIndex == 0) {
        errorMsg+= 'Please tell us how you heard about Music Express.\n';
	}
    
    if (errorMsg.length > 0 && errorMsg != '') {
        alert('There were errors with your form:\n\n' + errorMsg + '\nPlease correct the information and click "Subscribe" again.');
    } else {
    	r = true;
    }
    
    return r;
}

/**
 * This function fills in the billing address with the shipping address
 * information when the user clicks the checkbox.
 */
function fillAddress() {
    if(document.subscribe.billAddressSame.checked) {
        document.subscribe.billSchool.value = document.subscribe.shipSchool.value;
        document.subscribe.billName.value = document.subscribe.shipName.value;
        document.subscribe.billAddress1.value = document.subscribe.shipAddress1.value;
        document.subscribe.billAddress2.value = document.subscribe.shipAddress2.value;
        document.subscribe.billCity.value = document.subscribe.shipCity.value;
        document.subscribe.billZip.value = document.subscribe.shipZip.value;
        document.subscribe.billPhone.value = document.subscribe.shipPhone.value;
        document.subscribe.billEmail.value = document.subscribe.shipEmail.value;

        document.subscribe.billState.selectedIndex = document.subscribe.shipState.selectedIndex;
        document.subscribe.billCountry.selectedIndex = document.subscribe.shipCountry.selectedIndex;
    } else {
        document.subscribe.billSchool.value = '';
        document.subscribe.billSchool.value = '';
        document.subscribe.billName.value = '';
        document.subscribe.billAddress1.value = '';
        document.subscribe.billAddress2.value = '';
        document.subscribe.billCity.value = '';
        document.subscribe.billZip.value = '';
        document.subscribe.billPhone.value = '';
        document.subscribe.billEmail.value = '';

        document.subscribe.billState.selectedIndex = 0;
        document.subscribe.billCountry.selectedIndex = 0;
    }
}

function showHideAdditional(s,volume) {
	var displayVal = 'none';
	if (s.length > 0 && parseInt(s) > 0) {
		displayVal = '';
	} 
	
	document.getElementById(volume+'AdditionalCaption').style.display = displayVal;
	document.getElementById(volume+'AdditionalTeacherMags').style.display = displayVal;
	document.getElementById(volume+'AdditionalStudentMags').style.display = displayVal;
}

function showHideAdditionalForGroup(volume) {
	var qtyClass = volume+"Qty";
	var spanTags = document.getElementsByTagName("span");
	
	var values = 0;
	for (i=0; i<spanTags.length; i++) {
		if (spanTags[i])
		{
			//Get all tags with the specified class name.
			if (spanTags[i].className==qtyClass) {
				values += spanTags[i].childNodes[0].value;
			}
		}
	}	
	var displayVal = 'none';
	if (values.length > 0 && parseInt(values) > 0) {
		displayVal = '';
	}	
	document.getElementById(volume+'AdditionalCaption').style.display = displayVal;
	document.getElementById(volume+'AdditionalTeacherMags').style.display = displayVal;
	document.getElementById(volume+'AdditionalStudentMags').style.display = displayVal;
}

