function ListFind(string,searchvalue) {
 if (arguments[2]) {
  delimiter = arguments[2];
 } else {
  delimiter = ",";
 }
 list = string.split(delimiter);
 for (x = 0; x < list.length; x++) {
  if (list[x] == searchvalue) {
   return x + 1;
  }
 }
 return 0;
}

function stripAlphaChars(pstrSource) { 
	var m_strOut = new String(pstrSource); 
    m_strOut = m_strOut.replace(/[^0-9]/g, ''); 

    return m_strOut; 
}

		// main-3285
		fnStuffHowDidYouHear = function(e) {
			if (document.getElementById('structVisitor').value.search(/visitorSourceCategory\^MISC*\|/i) > -1) {
				newVal = 'visitorSourceCategory^MISC:' + e[e.selectedIndex].value + '|';
				document.getElementById('structVisitor').value = document.getElementById('structVisitor').value.replace(/visitorSourceCategory\^MISC*\|/i, newVal);
			}
			if (document.getElementById('structVisitor').value.search(/visitorSourceCategory\^OTHER*\|/i) > -1) {
				newVal = 'visitorSourceCategory^OTHER:' + e[e.selectedIndex].value + '|';
				document.getElementById('structVisitor').value = document.getElementById('structVisitor').value.replace(/visitorSourceCategory\^OTHER*\|/i, newVal);
			}
			return false;
		}


function emailCheck (emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) { return false; }
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) { return false; }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) { return false; }
	}
	if (user.match(userPat)==null) { return false; }
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) { return false;  }
		}
		return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) { return false;  }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { return false; }
	if (len<2) { return false; }
	return true;
}

fnValidateLeadForm_September2011 = function(primaryForm){
	// note: this is a different version of the validator scripts to accommodate a GENERIC form
	// lead form as designed by A. Matthews and incorporated in September, 2011. Checks to see if fields are required...
	var flagError = false;
	var msg = '';
	var focusElement = '';
	var isChecked = false;
	var flagRequiredAddress = false;
	var flagEmailFailed = false;
	
	var aRequiredFields = primaryForm.listRequiredFields.value.split(",");
	
	try {
	
	for (i = 0; i < aRequiredFields.length; i++) {
		switch(aRequiredFields[i]) {
			case 'FirstName':
				if (primaryForm.FirstName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your first name.\n';
					if (focusElement.length == 0) { focusElement = 'FirstName'; }
				}
				break;
			case 'LastName':
				if (primaryForm.LastName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your last name.\n';
					if (focusElement.length == 0) { focusElement = 'LastName'; }
				}
				// stuff the Name field...
				primaryForm.Name.value = primaryForm.FirstName.value + ' ' + primaryForm.LastName.value;
				break;
			case 'SchoolName':
				if (primaryForm.SchoolName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your school.\n';
					if (focusElement.length == 0) { focusElement = 'SchoolName'; }
				}
				break;
			case 'City':
				if (primaryForm.City.value == '') {
					flagError = true;
					msg = msg + 'Please enter your city.\n';
					if (focusElement.length == 0) { focusElement = 'City'; }
				}
				break;
			case 'State':
				if (primaryForm.State.selectedIndex < 1) {
					flagError = true;
					if (typeof(primaryForm.Country) != "undefined" && primaryForm.Country.value == 'CA') { 
						msg = msg + 'Please select a province.\n';
					} else {
						msg = msg + 'Please select a state.\n';
					}
					if (focusElement.length == 0) { focusElement = 'State'; }
				}
				break;
			case 'Email':
				if ((primaryForm.Email.value == '') || (emailCheck(primaryForm.Email.value) == false)) {
					flagError = true;
					flagEmailFailed = true;
					msg = msg + 'Please enter a valid email address.\n';
					if (focusElement.length == 0) { focusElement = 'Email'; }
				}
				break;
			case 'ConfirmEmail':
				if ((primaryForm.Email.value != primaryForm.ConfirmEmail.value) && (flagEmailFailed == false)) {
					flagError = true;
					msg = msg + 'Please confirm your email address.\n';
					if (focusElement.length == 0) { focusElement = 'ConfirmEmail'; }
				}
				break;
			case 'Phone':
				tempPhone = stripAlphaChars(primaryForm.Phone.value);
				if (((primaryForm.Phone.value == '') || (tempPhone.length < 10)) && (primaryForm.organization_id.value == 0)) {
					flagError = true;
					msg = msg + 'Please enter your phone.\n';
					if (focusElement.length == 0) { focusElement = 'Phone'; }
				}
				break;
			case 'Role':
				isChecked = false;		
				if (primaryForm.Role.length > 1) {
					// multiple radios
					for (x = 0; x < primaryForm.Role.length; x++) {
						if (primaryForm.Role[x].checked == true) {
							isChecked = true;
							break;
						}
					}
				} else {
					// single radio
					if (primaryForm.Role.checked == true) {
						isChecked = true;
					}
				}
				if (isChecked == false) {
					flagError = true;
					msg = msg + 'Please select a role.\n';
					if (focusElement.length == 0) { 
						if (primaryForm.Role.length > 1) {
							focusElement = 'Phone'; 
						} else {
							focusElement = 'Role'; 
						}
					}
				}
				break;
			case 'HowDidYouHear':
				if (primaryForm.HowDidYouHear.selectedIndex < 1) {
					flagError = true;
					msg = msg + 'Please select how you heard about us.\n';
					if (focusElement.length == 0) { focusElement = 'HowDidYouHear'; }
				}
				break;
			case 'leadNote':
				if (primaryForm.leadNote.value == '') {
					flagError = true;
					msg = msg + 'Please enter a message.\n';
					if (focusElement.length == 0) { focusElement = 'leadNote'; }
				}
				break;
			case 'chkProductLines':
				for (x = 0; x < primaryForm.chkProductLines.length; x++) {
					if (primaryForm.chkProductLines[x].checked == true) {
						isChecked = true;
						break;
					}
				}
				if (isChecked == false) {
					flagError = true;
					msg = msg + 'Please select at least one product.\n';
					if (focusElement.length == 0) { 
						focusElement = 'FirstName'; 
					}
				}
				break;
			case 'radProductLines':
				for (x = 0; x < primaryForm.radProductLines.length; x++) {
					if (primaryForm.radProductLines[x].checked == true) {
						isChecked = true;
						break;
					}
				}
				if (isChecked == false) {
					flagError = true;
					msg = msg + 'Please select a product.\n';
					if (focusElement.length == 0) { 
						focusElement = 'FirstName'; 
					}
				}
				break;
		}
	}
	
	
	} catch(e) { }
	
	if (flagError == true) {
		// errors -- alert & focus.
		alert(msg);
		try {
			document.getElementById(focusElement).focus();
		} catch(e) { }
		return false;
	} else {
		// no errors, store the lead
		
		// funky stuff...
		if (primaryForm.SchoolName.value != primaryForm.SchoolHidden.value) {
			// school is not matched
			primaryForm.organization_id.value = 0;
		}
		
		try {
			newID = ColdFusion.Ajax.submitForm(primaryForm.thisPrimaryFormName.value, '/cfc/sales/leads.cfc?method=fnInitLeadRecord_201003&returnFormat=json', callback, errorHandler, 'POST', false);
//			alert(newID);

			primaryForm.submit();
			return false;

		} catch(err) {
			 // alert('oh snap! the cfc failed to run: ' + err.description);
		}
			
		return false;
	}
}

	
fnValidateLeadForm_March2010 = function(primaryForm){
	// note: this is a different version of the validator scripts to accommodate a single-form
	// lead form as designed by A. Duquette and incorporated in March, 2010. Checks to see if fields are required...
	var flagError = false;
	var msg = '';
	var focusElement = '';
	var isChecked = false;
	var flagRequiredAddress = false;
	var flagEmailFailed = false;
	
	var aRequiredFields = primaryForm.listRequiredFields.value.split(",");
	
	try {
	
	for (i = 0; i < aRequiredFields.length; i++) {
		switch(aRequiredFields[i]) {
			case 'FirstName':
				if (primaryForm.FirstName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your first name.\n';
					if (focusElement.length == 0) { focusElement = 'FirstName'; }
				}
				break;
			case 'LastName':
				if (primaryForm.LastName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your last name.\n';
					if (focusElement.length == 0) { focusElement = 'LastName'; }
				}
				// stuff the Name field...
				primaryForm.Name.value = primaryForm.FirstName.value + ' ' + primaryForm.LastName.value;
				break;
			case 'SchoolName':
				if (primaryForm.SchoolName.value == '') {
					flagError = true;
					msg = msg + 'Please enter your school.\n';
					if (focusElement.length == 0) { focusElement = 'SchoolName'; }
				}
				break;
			case 'City':
				if (primaryForm.City.value == '') {
					flagError = true;
					msg = msg + 'Please enter your city.\n';
					if (focusElement.length == 0) { focusElement = 'City'; }
				}
				break;
			case 'State':
				if (primaryForm.State.selectedIndex < 1) {
					flagError = true;
					if (typeof(primaryForm.Country) != "undefined" && primaryForm.Country.value == 'CA') { 
						msg = msg + 'Please select a province.\n';
					} else {
						msg = msg + 'Please select a state.\n';
					}
					if (focusElement.length == 0) { focusElement = 'State'; }
				}
				break;
			case 'Email':
				if ((primaryForm.Email.value == '') || (emailCheck(primaryForm.Email.value) == false)) {
					flagError = true;
					flagEmailFailed = true;
					msg = msg + 'Please enter a valid email address.\n';
					if (focusElement.length == 0) { focusElement = 'Email'; }
				}
				break;
			case 'ConfirmEmail':
				if ((primaryForm.Email.value != primaryForm.ConfirmEmail.value) && (flagEmailFailed == false)) {
					flagError = true;
					msg = msg + 'Please confirm your email address.\n';
					if (focusElement.length == 0) { focusElement = 'ConfirmEmail'; }
				}
				break;
			case 'Phone':
				tempPhone = stripAlphaChars(primaryForm.Phone.value);
				if (((primaryForm.Phone.value == '') || (tempPhone.length < 10)) && (primaryForm.organization_id.value == 0)) {
					flagError = true;
					msg = msg + 'Please enter your phone.\n';
					if (focusElement.length == 0) { focusElement = 'Phone'; }
				}
				break;
			case 'Role':
				isChecked = false;		
				if (primaryForm.Role.length > 1) {
					// multiple radios
					for (x = 0; x < primaryForm.Role.length; x++) {
						if (primaryForm.Role[x].checked == true) {
							isChecked = true;
							break;
						}
					}
				} else {
					// single radio
					if (primaryForm.Role.checked == true) {
						isChecked = true;
					}
				}
				if (isChecked == false) {
					flagError = true;
					msg = msg + 'Please select a role.\n';
					if (focusElement.length == 0) { 
						if (primaryForm.Role.length > 1) {
							focusElement = 'Phone'; 
						} else {
							focusElement = 'Role'; 
						}
					}
				}
				break;
			case 'HowDidYouHear':
				if (primaryForm.HowDidYouHear.selectedIndex < 1) {
					flagError = true;
					msg = msg + 'Please select how you heard about us.\n';
					if (focusElement.length == 0) { focusElement = 'HowDidYouHear'; }
				}
				break;
			case 'leadNote':
				if (primaryForm.leadNote.value == '') {
					flagError = true;
					msg = msg + 'Please enter a message.\n';
					if (focusElement.length == 0) { focusElement = 'leadNote'; }
				}
				break;
		}
	}
	
	
	} catch(e) { }
	
	if (flagError == true) {
		// errors -- alert & focus.
		alert(msg);
		try {
			document.getElementById(focusElement).focus();
		} catch(e) { }
		return false;
	} else {
		// no errors, store the lead
		
		// funky stuff...
		if (primaryForm.SchoolName.value != primaryForm.SchoolHidden.value) {
			// school is not matched
			primaryForm.organization_id.value = 0;
		}
		
		try {
			newID = ColdFusion.Ajax.submitForm(primaryForm.thisPrimaryFormName.value, '/cfc/sales/leads.cfc?method=fnInitLeadRecord_201003&returnFormat=json', callback, errorHandler, 'POST', false);
//			alert(newID);

			primaryForm.submit();
			return false;

		} catch(err) {
			 // alert('oh snap! the cfc failed to run: ' + err.description);
		}
			
		return false;
	}
}

function callback(response) {
	var result = ColdFusion.JSON.decode(response);
//	alert(result);
}

function errorHandler(code, msg) {
//	alert("Error!!! " + code + ": " + msg);
}

// bind error suppression
suppressBindError = function(c, m) { m = ''; }

// Level 2 SEO
var DID = '';

if (location.hostname.search(/studyisland.com/i) > -1) {
	DID = 41532; // studyisland main
} else {
	if (location.hostname.search(/studyisland.ca/i) > -1) {
		DID = 61865; // studyisland canada
	} else {
		if (location.hostname.search(/northstar/i) > -1) {
			DID = 55891; // northstar
		} else {
			DID = 41532; // studyisland main
		}
	}
}
 
var ConvName		= '';
var ConvDesc		= '';
var ConvSubTotal	= '';
var ConvTax			= '';
var ConvTotal		= '';
var ConvMisc1		= '';
var ConvMisc2		= '';
var ConvMisc3		= '';
var ConvMisc4		= '';
var ConvMisc5		= '';

fnPostLevel2Data = function(pConvName, pConvMisc1, pConvMisc2, pConvMisc3, pConvMisc5) {



	window.ConvName			= pConvName;
	window.ConvMisc1		= pConvMisc1;
	window.ConvMisc2		= pConvMisc2;
	window.ConvMisc3		= pConvMisc3;
	window.ConvMisc5		= pConvMisc5;

	pcheck=(window.location.protocol == "https:") ? "https://stats.sa-as.com/conversion.js":"http://stats.sa-as.com/conversion.js";

	headID = document.getElementsByTagName("head")[0];         
	newScript = document.createElement('script');
	newScript.setAttribute("type","text/javascript")
	newScript.setAttribute("src", pcheck)
	headID.appendChild(newScript);
} 
