// JavaScript Document

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images && (preloadFlag == true)) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

var preloadFlag = false;
function preloadImages() {
	if (document.images) {
		sitemap_over = newImage("images/sitemap-over.gif");
		contact_over = newImage("images/contact-over.gif");
		nav_home_over = newImage("images/nav/nav_home-over.gif");
		nav_about_over = newImage("images/nav/nav_about-over.gif");
		nav_member_over = newImage("images/nav/nav_member-over.gif");
		nav_cmhof_over = newImage("images/nav/nav_cmhof-over.gif");
		nav_awards_over = newImage("images/nav/nav_awards-over.gif");
		nav_musican_over = newImage("images/nav/nav_musican-over.gif");
		musican_bandaid_over = newImage("images/nav/musican_bandaid-over.gif");
		musican_scholarships_over = newImage("images/nav/musican_scholarships-over.gif");
		musican_donations_over = newImage("images/nav/musican_donations-over.gif");
		musican_sponsors_over = newImage("images/nav/musican_sponsors-over.gif");
		awards_history_over = newImage("images/nav/awards_history-over.gif");
		awards_site_over = newImage("images/nav/awards_site-over.gif");
		cmhof_inductees_over = newImage("images/nav/cmhof_inductees-over.gif");
		cmhof_past_over = newImage("images/nav/cmhof_past-over.gif");
		cmhof_grealis_over = newImage("images/nav/cmhof_grealis-over.gif");
		cmhof_virtual_over = newImage("images/nav/cmhof_virtual-over.gif");
		member_qual_over = newImage("images/nav/member_qual-over.gif");
		member_benefits_over = newImage("images/nav/member_benefits-over.gif");
		member_form_over = newImage("images/nav/member_form-over.gif");
		caras_administration_over = newImage("images/nav/caras_administration-over.gif");
		caras_board_over = newImage("images/nav/caras_board-over.gif");
		caras_regional_over = newImage("images/nav/caras_regional-over.gif");
		caras_trustees_over = newImage("images/nav/caras_trustees-over.gif");
		caras_mandate_over = newImage("images/nav/caras_mandate-over.gif");
		caras_media_over = newImage("images/nav/caras_media-over.gif");
		preloadFlag = true;
	}
}

//////////////////////////
//VALIDATION
//////////////////////////

function removeSpaces(string) {
	var newString = '';
	for (var i = 0; i < string.length; i++) {
		if (string.charAt(i) != ' ') newString += string.charAt(i);
	}
	return newString;
}

function isDigits(fld, nam, language) {
	for (var i = 0; i<fld.value.length; i++) {
		var ch = fld.value.charAt(i);
		
		if ((ch < '0' || ch > '9') && (ch != '-' && ch != ' ')) {
			
			if (language == "FR"){
				e.addErrorMsg ('La valeur de  \'' + nam + '\' doit être numérique');
			}
			else{
				e.addErrorMsg ('The \'' + nam + '\' field must be numeric');
			}
			
			e.setError(fld)
			return false;
		}
	}
	return true;
}


function isEmpty (fld, nam, language){
	if (fld.value.length == 0) {
		if (language == "FR"){
			e.addErrorMsg ('La valeur de \'' + nam + '\' est vide');
		}
		else{
			e.addErrorMsg ('The \'' + nam + '\' field is empty');
		}

		e.setError(fld)
		return true;
	} 
	else if (fld.value == null){
		if (language == "FR"){
			e.addErrorMsg ('La valeur de \'' + nam + '\' est vide');
		}
		else{
			e.addErrorMsg ('The \'' + nam + '\' field is empty');
		}
		e.setError(fld)
		return true;
	} 
	else{
		for (var i=0; i<fld.value.length; i++) {
			var ch = fld.value.charAt(i);
			if (ch != ' ' && ch != '\t') {
				break;
			}
			else {
				if ((i + 1) == fld.value.length){
					if (language == "FR"){
						e.addErrorMsg ('La valeur de \'' + nam + '\' est vide');
					}
					else{
						e.addErrorMsg ('The \'' + nam + '\' field is blank');
					}
					e.setError(fld);
					return true;
				}
			}
		}
	}
	return false;
}


function isValidCC(fld, nam, language) {
	if (fld.value.length < 13 || fld.value.length > 19) {
		if (language == "FR"){
			e.addErrorMsg ('Nombre inadmissible des chiffres dans la carte de crédit');
		}
		else{
			e.addErrorMsg ('Invalid number of digits in credit card');
		}
		e.setError(fld)
		return false;
	}
	return true;
}


function isEmail(fld,language){

	var regex = /^[a-zA-Z0-9._-]+@([a-zA-Z0-9.-]+\.)+[a-zA-Z0-9.-]{2,4}$/;

	if (!regex.test(fld.value)) {
		e.addErrorMsg ('Invalid email address');
		e.setError(fld);
		return false;
	}

	return true;
}

function chkCCDate(themonth, theyear, language){
     var cc_expires_month = themonth.options[themonth.selectedIndex].value;
     if (cc_expires_month.length == 1) cc_expires_month = 0 + cc_expires_month; 
     var cc_expires_year = theyear.options[theyear.selectedIndex].value;
     if (new Date(cc_expires_year,cc_expires_month,01) < new Date()) {
     	if (language == "FR"){
		e.addErrorMsg ('Vérifiez la date d\'échéance de carte de crédit');
     	}
     	else{
		e.addErrorMsg ('Check the credit card expiration date');
     	}
	e.setError(themonth);
     }
}

function isSelected(fld,nam,language){
	

	if (fld.options[fld.selectedIndex].value == ""){
		e.addErrorMsg ('Please choose a ' + nam);
		e.setError (fld);
		return false;
	}
	return true

}

function isRadioChecked(fld,nam,amount){

	var radio_checked = false;
	for (var k=0; k < fld.length; k++) {
		if (fld[k].checked ){
			radio_checked = true;
			break;
		}	
    	}

    	return radio_checked;


}


function isMoney(fld,nam,language){

	for(var i=0; i<fld.value.length; i++)	{
		var c = fld.value.charAt(i);
		if( (c < '0' ||  c > '9' ) && ( c != '.' && c != '$' && c != ',') ) {
			e.addErrorMsg ('The ' + nam + ' should be in the format 20.00');
	   		e.setError (fld);
	    	    	return false;
		}
	}

	return true;
	
}

submitcount = 0; 
var e = new ErrorMsgObj ();

function checkDonation(){


	var f = document.frmDonation;
	var language = 'EN';

	e.setLanguage();
	e.initErrMsgs();


	isSelected (f.salutation,  'Salutation', language)

	isEmpty (f.firstname,  'First Name', language);
	isEmpty (f.lastname,  'Last Name', language);
//	isEmpty (f.company,  'Organization', language);
	isEmpty (f.address,  'Address', language);
	isEmpty (f.city,  'City', language);

	isSelected (f.province,  'Province', language)
	
	isEmpty (f.zipcode,  'Postal Code', language);

	if (!isEmpty (f.phonearea,  'Phone Area', language)) {
		isDigits (f.phonearea, 'Phone Area', language);	
	}	

	if (!isEmpty (f.phonenumber,  'Phone Number', language)) {
		isDigits (f.phonenumber, 'Phone Number', language);
	}

	if (!isEmpty (f.business_email,  'E-mail', language)){
		isEmail (f.business_email, 'E-mail', language);
	}



	//donation amount
	if (!f.other_donation.disabled) {
		if (!isEmpty(f.other_donation,'Donation',language)) {
			isMoney(f.other_donation,'Donation',language);
		}	
	}
	else{
		
	    	if (!isRadioChecked(f.donation)){
			e.addErrorMsg ('Please select a donation amount.');
			e.setError (f.donation[0]);
	    	}
	
	}

	
	
	isValidCC(f.cc_number,'Credit Card Number',language);
	isSelected(f.cc_type,'Credit Card Type',language);
	chkCCDate(f.cc_expire_month,f.cc_expire_year);
	isEmpty(f.cc_name,'Name on Credit Card', language);
	
	if (!f.confirm.checked){
		e.addErrorMsg ('Please check the box that confirms \'I have reviewed the above information and it is accurate. I hereby approve my donation to the CARAS Music Education Program.\'');
		e.setError (f.confirm);
	}
	
	
	if (e.errMsgAdded == true){
		submitcount = 0; 
	
		e.dispErrMsgs();
		e.focusFirst();
		return false;
	}
	else {
		if (submitcount == 0) {
			submitcount++; 
			return true;
		} 
		else{ 
			return false; 
		} 
	}

}


function updateTotal(what){


	if ( what.checked ) {
		document.frmMembership.total_display.value = Number(parseFloat(53.50) + parseFloat(what.value)).toFixed(2);
		document.frmMembership.total_amount.value = Number(parseFloat(53.50) + parseFloat(what.value)).toFixed(2);
	}

	else{
		var other = document.frmMembership.other_donation.value;
		if (isNaN(other) || other == false) {
			other = 0.00;
			document.frmMembership.other_donation.value = 0.00;
		}

		other = String(other).replace('-','');
		other = String(other).replace(',','');
		other = String(other).replace(' ','');	
		other = String(other).replace('$','');

		document.frmMembership.total_display.value = Number(parseFloat(53.50) + parseFloat(other)).toFixed(2);
		document.frmMembership.total_amount.value = Number(parseFloat(53.50) + parseFloat(other)).toFixed(2);
		
	}
	
	return true;

}

function checkMembership (){

	var f = document.frmMembership;
	var language = 'EN';

	e.setLanguage();
	e.initErrMsgs();


	if (!isRadioChecked(f.renewal)) {
		e.addErrorMsg ('Please indicate whether this is a New Membership or a Renewal.');
		e.setError (f.renewal[0]);
	}


	isSelected (f.salutation,  'Salutation', language)
	isEmpty (f.firstname,  'First Name', language);
	isEmpty (f.lastname,  'Last Name', language);
//	isEmpty (f.company,  'Organization', language);
	isEmpty (f.address,  'Address', language);
	isEmpty (f.city,  'City', language);

	isSelected (f.province,  'Province', language)
	
	isEmpty (f.zipcode,  'Postal Code', language);

	if (!isEmpty (f.phonearea,  'Phone Area', language)) {
		isDigits (f.phonearea, 'Phone Area', language);	
	}	

	if (!isEmpty (f.phonenumber,  'Phone Number', language)) {
		isDigits (f.phonenumber, 'Phone Number', language);
	}

	if (!isEmpty (f.business_email,  'E-mail', language)){
		isEmail (f.business_email, 'E-mail', language);
	}


	if (!f.other_occupation.disabled) {
		isEmpty(f.other_occupation,'Occupation',language);
	}
	else{
		if (!isRadioChecked(f.occupation)) {
			e.addErrorMsg ('Please select an occupation.');
			e.setError (f.occupation[0]);
		}
	}	


	if (!f.other_donation.disabled) {
		isMoney(f.other_donation,'Donation',language);
	}


	isValidCC(f.cc_number,'Credit Card Number',language);
	isSelected(f.cc_type,'Credit Card Type',language);
	chkCCDate(f.cc_expire_month,f.cc_expire_year);
	isEmpty(f.cc_name,'Name on Credit Card', language);
	
	if (!f.confirm.checked){
		e.addErrorMsg ('Please check the box that confirms \'I have reviewed the above information and it is accurate. I hereby approve my application for membership to CARAS.\'');
		e.setError (f.confirm);
	}


	if (e.errMsgAdded == true){
		submitcount = 0; 
	
		e.dispErrMsgs();
		e.focusFirst();
		return false;
	}
	else {
		if (submitcount == 0) {
			submitcount++; 
			return true;
		} 
		else{ 
			return false; 
		} 
	}
}