<!--
//--------------------------------------------
//        Functions are in Alphabetical Order
//--------------------------------------------
function changeInBusiness(value) {
	toggleStyle('CompanyName',value);
	toggleStyle('BusinessType',value);
	toggleStyle('BusinessOwnership',value);
	toggleStyle('BusinessStarted',value);
	toggleStyle('BusinessOnline',value);
	toggleStyle('BusinessHome',value);
	toggleStyle('BusinessEmployee',value);
	toggleStyle('Business8a',value);
	toggleStyle('BusinessEntity',value);
	if (document.getElementById('rbxNotInBiz').checked) {
		document.getElementById('txtCompanyName').onblur();
		document.getElementById('cmbBizType').onblur();
		document.getElementById('txtBizYear').onblur();
		document.getElementById('txtEmployees').onblur();
		}
	
}
//-----------------------------------
function changeRequiredContact(element) {
	var show = !(element.value=='Email');
	toggleStyle('PrimaryPhone',show);
	toggleStyle('StreetAddy',show);
	toggleStyle('City',show);
	toggleStyle('State',show);
	toggleStyle('CounselingRequest',show);
	document.getElementById('FormTitle').innerHTML = 'Request for ' + element.value + ' Counseling - Part I and Part II'; 
	if (!show){
		document.getElementById('PrimaryPhone1').onblur();
		document.getElementById('txtAddress').onblur();
		document.getElementById('txtCity').onblur();
		document.getElementById('cmbState').onblur();
		document.getElementById('cmbCounselingRequested').onblur();		
	}
	if (document.NewClient.Type.value==1 || document.NewClient.Type.value==4) {
	//this means we are entering a new case of some sort so synch up case type with client type
		matchRadioToValue(document.NewClient.CounselingTypeSession,element.value,true);
	
	}
	
}
//-----------------------------------
function changeSessionRequirements(element) {
	var show = !(element.value=='Email');
	toggleStyle('NatureOfSession',show);
	document.NewClient.CaseType.onchange();


	
}
//-----------------------------------
function changeTimePulldown() {
	var type = valueOfRadioChecked(document.NewClient.CounselingTypeSession);
	var session = document.NewClient.CaseType.options[document.NewClient.CaseType.selectedIndex].value;
	var time = "";
	var pulldown = document.NewClient.CounselingHours;
	if (pulldown.selectedIndex > -1) {
		time = pulldown.options[pulldown.selectedIndex].value;
		}
	pulldown.options.length=0
	//compare this to EDMIS
	var msg = (session=='Close Out') ? ' (Follow-on + Close)':'';
	if (session=='Close Out') {
		pulldown.options[pulldown.length] = new Option('0 hours','0',false,false);
		}
	if ((session=='Close Out' || session=='Follow-On') && (type=='Email' || type=='Telephone')) {
		pulldown.options[pulldown.length] = new Option('.25 hours' + msg,'.25',false,false);
		}
	if (!((session=='New Case' || session=='One-Time') && (type=='Face-to-Face'))) {
		pulldown.options[pulldown.length] = new Option('.5 hours' + msg,'.5',false,false);
		}
	pulldown.options[pulldown.length] = new Option('1 hour' + msg,'1');
	for (var i=1.5;i<4.5;i+=.5) {
		pulldown.options[pulldown.length] = new Option(i.toString()+' hours' + msg,i.toString(),false,false);
		}
	matchPulldownToValue(pulldown, time);
	


	
}
//-----------------------------------
function correctHeaderSpacing(element,valid,addNode,errMsg) {
	if (element.firstChild==null) {
		element.appendChild(document.createTextNode(''));
		}
	if (valid==false) {
		element.className='text_12_error_show';
		
		if (element.childNodes.length==1 && addNode==true) {
			//we only change the text of the error message if it requires dynamic spacing
			//ie is in the error header block at top of page not the generic error message next to the field in error
			element.firstChild.data='* '+errMsg;
			element.appendChild(document.createElement('<br>'));
		}
	} else {
		element.className='text_12_error_hide';
		if (element.childNodes.length==2 & addNode==true) {
			element.firstChild.data='';
			element.removeChild(element.childNodes[1]);
		}
	}
}
//-----------------------------------
function correctOwnership(element,elementOther) {
	var val1 = 100-element.options[element.selectedIndex].value.replace('%','');
	val1 = val1+'%';
	//alert(val1);
	var val2 = elementOther.options[elementOther.selectedIndex].value.replace('%','');
	if (val1!=0 || val2!=0) {
		for (i=0;i<=elementOther.options.length;i++) {
				elementOther.options[i].selected = (elementOther.options[i].value == val1);
		}
	}

}
//-----------------------------------
function counselingRequestedSelected(element) {
	//alert(element.options[element.selectedIndex].value);
	if (element.options[element.selectedIndex].value=='99') {
		toggleStyle('CounselingRequestOther',true);
	} else {
		toggleStyle('CounselingRequestOther',false);
	}
	
}
//-----------------------------------
function filterText(element) {
	element.value=element.value.replace(/[`]/g,'');	
	element.value=element.value.replace(/[\/]/g,'');
	element.value=element.value.replace(/[\\]/g,'');
}
//-----------------------------------
function hideP3(element) {
	if ( document.getElementById('PartThree') != null ) {
		document.getElementById('PartThree').className = (element.checked) ? 'hide':'show';
		}
}
//-----------------------------------
function matchCounselingTime(value) {
	 var d =document.NewClient.CounselingTime;
	 matchPulldownToValue(d,value);
	 if (d.selectedIndex==0 && d.options[0].value!=value){
		d.options.length = d.options.length+1;
		d.options[d.options.length-1].value=value;
		var time = new Date();
		time.setHours(value.substring(0,2));
		time.setMinutes(value.substring(2));
		var hours = time.getHours();
		var minutes = time.getMinutes();
		var am; 
		if (hours> 12) {
			hours -= 12;
			am = " PM";
			} else {
			am= " AM";
			hours = (hours==0)? 12:hours;
			}
		
		d.options[d.options.length-1].text=hours.toString()+' ' + zeroPad(minutes,2)+am;
		d.selectedIndex= d.options.length-1;
		d.title='The time for imported sessions cannot be modified';
		d.disabled=true;
		}
	 
	
}
//-----------------------------------
function onlyNumbers(element)  {
	element.value = element.value.replace(/[^0123456789]/g,'');

}
//-----------------------------------
function onlyNumbersLeadingMinus(element)  {
	element.value = element.value.replace(/[^-0123456789]/g,'');

}
//-----------------------------------
function prepareClientCreateView()  {

	prepareClientFirstSessionView();
	document.getElementById('SessionCounselingTypeDisplay').className = 'hide';
	//set session info today

}
//-----------------------------------
function prepareClientFirstSessionView()  {
	var i,len;
	//remove follow-on and close-out
	document.NewClient.CaseType.remove(2);
	document.NewClient.CaseType.remove(2);
	//disable case selection
	len = document.NewClient.CounselingTypeSession.length;
	for (i=0;i<len;i++) {
		document.NewClient.CounselingTypeSession[i].disabled=true;
	}
	//set session info today
	setDateToToday();
	document.getElementById('TypeMustMatch').innerHTML += ' (First Session must match Type of Counseling in Part 1 & 2)';

}
//-----------------------------------
function prepareClientFollowUpView()  {
	document.NewClient.CaseType.remove(0);
	document.NewClient.CaseType.remove(0);
	setDateToToday();
	document.NewClient.CaseType.onchange();
	document.NewClient.CounselingHours.selectedIndex=0;
	//set session info today

}
function prepareClientModSessionView(caseType)  {
	document.getElementById('ShowP1Only').className='hide';
	matchPulldownToValue(document.NewClient.CaseType, caseType, true);
	if (document.NewClient.CaseType.selectedIndex>1) {
		document.NewClient.CaseType.remove(0);
		document.NewClient.CaseType.remove(0);
		} else {
		document.NewClient.CaseType.remove(2);
		document.NewClient.CaseType.remove(2);

		}
	setDateToToday();
	document.NewClient.CaseType.onchange();
	document.NewClient.CounselingHours.selectedIndex=0;
	//set session info today

}
//-----------------------------------
function prepareClientRegistrationView()  {
	document.NewClient.CounselingType[0].checked = true;
	document.NewClient.CounselingType[0].onclick();
	document.NewClient.P1Only.checked = true;
	document.NewClient.P1Only.onclick();
	document.getElementById('ShowClientType').className='hide';
	document.getElementById('FormTitle').innerHTML = 'Request for Counseling';

}
//-----------------------------------
function prepareClientUpdateView()  {
	document.NewClient.P1Only.checked = true;
	document.NewClient.P1Only.onclick();
	document.getElementById('ShowP1Only').className='hide';	

}
//-----------------------------------
function prepareYearPulldown(year)  {
	var today=(new Date()).getFullYear();
	var end = (year==null || (today-3)<year) ? 3:(today-year+1);
	if (document.NewClient.year.options.length<end) {
		document.NewClient.year.options.length=end
	}
	for (i=0;i<end;i++) {
		document.NewClient.year.options[i].value=(today-i).toString();
		document.NewClient.year.options[i].text=today-i;
	}


}
//-----------------------------------
function setCounseling2() {
	var defaultHours = -1;
	if (document.getElementById('secondaryhours').className =='hide' && document.NewClient.Counselor2.value!='') {
		defaultHours = document.NewClient.CounselingHours.options[document.NewClient.CounselingHours.selectedIndex].value;
		}
	document.getElementById('secondaryhours').className = !(document.NewClient.Counselor2.selectedIndex>-1 && document.NewClient.Counselor2.value!='')? 'hide':'show';
	if (defaultHours>-1) {
		matchPulldownToValue(document.NewClient.CounselingHours2,defaultHours,false);
		}
	}
//-----------------------------------
function setDateToToday()  {
	
	var today = new Date();
	matchPulldownToValue(document.NewClient.year,today.getFullYear());
	matchPulldownToValue(document.NewClient.month,zeroPad(today.getMonth()+1,2));
	setOptions();
	document.NewClient.day.selectedIndex = document.NewClient.day.options.length-1;
}
//-----------------------------------
function setOptions()  {
	var base = document.NewClient;
	var today= new Date();
	var day = base.day.selectedIndex;
	setOptionsBeta(base.month,base.day,base.year);
	//
	if (base.year.options[base.year.selectedIndex].value==today.getFullYear() && parseInt(base.month.options[base.month.selectedIndex].value,10)>today.getMonth()) {
		
		base.month.selectedIndex=today.getMonth();
		}	
	
	if (base.year.options[base.year.selectedIndex].value==today.getFullYear() && parseInt(base.month.options[base.month.selectedIndex].value,10)==today.getMonth()+1) {
		for (var i=base.day.options.length-1;i>today.getDate()-1;i+=-1) {
				base.day.remove(i);
			}
		}
	if (day < base.day.options.length) {
		base.day.selectedIndex = day;
		} else {
		base.day.selectedIndex = base.day.options.length-1;
		}
}
//-----------------------------------
function toggleStyle(name, value) {
	var element= document.getElementById(name);
	//alert(element.firstChild.data.charCodeAt(0));
	if (value==true) {
		if (element.className!='text_12_bold') {
			element.className='text_12_bold';
			element.firstChild.data = '*' +element.firstChild.data.substring(1);
			}
	} else {
		element.className='text_12_white_bold';
		element.firstChild.data = '\xa0' +element.firstChild.data.substring(1);
	}
}
//-----------------------------------
function validate641p1(element) {
	var valid=true;
	var check,len,i;

	//check always required
	valid = document.getElementById('LastName').onblur() && valid;
	valid = document.getElementById('FirstName').onblur() && valid;
	valid = document.getElementById('txtEmail').onblur() && valid;
	valid = document.getElementById('PrimaryPhone1').onblur() && valid;
	valid = document.getElementById('SecondaryPhone1').onblur() && valid;
	valid = document.getElementById('FaxPhone1').onblur() && valid;
	valid = document.getElementById('txtAddress').onblur() && valid;
	valid = document.getElementById('txtCity').onblur() && valid;
	valid = document.getElementById('cmbState').onblur() && valid;
	valid = document.getElementById('txtZip').onblur() && valid;
	valid = document.getElementById('cmbCounselingRequested').onblur() && valid;
	valid = document.getElementById('MediaCodeOtherText').onblur() && valid;
	valid = document.getElementById('txtCompanyName').onblur() && valid;
	valid = document.getElementById('cmbBizType').onblur() && valid;
	valid = document.getElementById('txtBizYear').onblur() && valid;
	valid = document.getElementById('txtEmployees').onblur() && valid;
	document.NewClient.Revenues.onkeyup();
	valid = document.getElementById('txtPandL').onblur() && valid;
	if (!document.NewClient.P1Only.checked) {
		document.NewClient.TotalSBALoans.onkeyup();
		document.NewClient.TotalNonSBALoans.onkeyup();
		document.NewClient.EquityCapital.onkeyup();
		valid = document.NewClient.counselingprovided.onblur() && valid;
		valid = validateSessionLanguage(document.NewClient.Language[0]) && valid;
		}
	
	check = "LastName: " + document.getElementById('LastName').onblur() +"\n";
	check += "FirstName: " + document.getElementById('FirstName').onblur() +"\n";
	check += "txtEmail: " + document.getElementById('txtEmail').onblur() +"\n";
	check += "PrimaryPhone1: " + document.getElementById('PrimaryPhone1').onblur() +"\n";
	check += "SecondaryPhone1: " + document.getElementById('SecondaryPhone1').onblur() +"\n";
	check += "FaxPhone1: " + document.getElementById('FaxPhone1').onblur() +"\n";
	check += "txtAddress: " + document.getElementById('txtAddress').onblur() +"\n";
	check += "txtCity: " + document.getElementById('txtCity').onblur() +"\n";
	check += "cmbState: " + document.getElementById('cmbState').onblur() +"\n";
	check += "txtZip: " + document.getElementById('txtZip').onblur() +"\n";
	check += "cmbCounselingRequested: " + document.getElementById('cmbCounselingRequested').onblur() +"\n";
	check += "MediaCodeOtherText: " + document.getElementById('MediaCodeOtherText').onblur() +"\n";
	check += "txtCompanyName: " + document.getElementById('txtCompanyName').onblur() +"\n";
	check += "cmbBizType: " + document.getElementById('cmbBizType').onblur() +"\n";
	check += "txtBizYear: " + document.getElementById('txtBizYear').onblur() +"\n";
	check += "txtEmployees: " + document.getElementById('txtEmployees').onblur() +"\n";
	check += "txtPandL: " + document.getElementById('txtPandL').onblur() +"\n";	
	if (!document.NewClient.P1Only.checked) {
		check += '\n\n\Session Validations';
		check += '\ncounselingprovided:  '+document.NewClient.counselingprovided.onblur();
		check += '\nLanguage:  '+validateSessionLanguage(document.NewClient.Language[0]);
		}
	if (valid) {document.NewClient.ZipCheck.value='';
		}
		else {
			alert('There is an error on the page. Please check for the red error messages.');
		}
	if ('Counselor1' in document.NewClient) {document.NewClient.Counselor1.disabled=false;}
	if ('CounselingTypeSession' in document.NewClient) {
		len = document.NewClient.CounselingTypeSession.length;
		for (i=0;i<len;i++) {
			document.NewClient.CounselingTypeSession[i].disabled=false;
		}
	}
	//alert(check+"\n\nis the form valid?\n"+valid);
	return valid;
}
//-----------------------------------
function validateBizYear(element) {
	var valid;
	valid = (element.value>1899 || element.value==0);
	correctHeaderSpacing(document.getElementById('BizYearErrHeader'),valid,true, 'The Business Start Year for a business cannot be before 1900');
	valid = validateInBusiness(document.getElementById('txtBizYear'), 'Business Start Year') && valid;
	correctHeaderSpacing(document.getElementById('txtBizYearErr'),valid,false);
	return valid;
}
//-----------------------------------
function validateCityOrState(element, err) {
	//city and state are required in some situations
	var base = element.id;
	var valid = document.getElementById('rbxO').checked || element.value.length>0;
	correctHeaderSpacing(document.getElementById(base+'ErrHeader'),valid,true,err + ' is a required field');
	correctHeaderSpacing(document.getElementById(base+'Err'),valid,false);
	return valid;	
	
}

//-----------------------------------
function validateCounselingNature(pulldown, textarea) {
	//city and state are required in some situations
	var valid = validateCityOrState(pulldown, 'Nature of Counseling Requested');
	var tempCheck = document.getElementById('cmbCounselingRequested').value!='99' || document.getElementById('txtCounselingOther') .value.length>0
	correctHeaderSpacing(document.getElementById('cmbCounselingRequestedOtherErrHeader'),tempCheck,true, 'If the Nature of Counseling is Other, the text box below it must be filled out');
	correctHeaderSpacing(document.getElementById('CounselingRequestOtherErr'),tempCheck,false);
	return tempCheck && valid;
}

//-----------------------------------
function validateCounselingProvided(pulldown, textarea) {
	var validRequired, validOtherRequired;
	validRequired = valueOfRadioChecked(document.NewClient.CounselingTypeSession)=='Email'|| (pulldown.value.length>0);
	validOtherRequired = pulldown.value!=99 || textarea.value.length>0;
	correctHeaderSpacing(document.getElementById('NatureOfSessiondErrHeader'),validRequired,true, 'Counseling Provided is a required field');
	correctHeaderSpacing(document.getElementById('NatureOfSessiondOtherdErrHeader'),validOtherRequired,true, 'If Counseling Provided is Other, the text box below it must be filled out');
	correctHeaderSpacing(document.getElementById('NatureOfSessionErr'),validRequired && validOtherRequired,false);
	toggleStyle('NatureOfCounselingOther', (pulldown.value==99));
	return validRequired && validOtherRequired;
}

//-----------------------------------
function validateEmail(element)  {
	//alert(element.value.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/));
	var valid;
	valid = validateRequiredField('txtEmail','EmailErr','EmailRequiredErrHeader','Email is a required field. For clients who do not have or provide an email address, use their name to format an email address like: firstname.lastname@yyy.yyy.');
	if (valid) {
		valid = (element.value.match(/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+$/)!= null);

		correctHeaderSpacing(document.getElementById('EmailBadErrHeader'),valid,true, 'Invalid Email address');
		//update error label next to field
		correctHeaderSpacing(document.getElementById('EmailErr'),valid,false);
		} 
	return valid;
	
}
//-----------------------------------
function validateInBusiness(element, err) {
	//city and state are required in some situations
	var valid = document.getElementById('rbxNotInBiz').checked || element.value.length>0;
	correctHeaderSpacing(document.getElementById(element.id +'ErrHeader'),valid,true,err + ' is a required field if In Business is Yes');
	correctHeaderSpacing(document.getElementById(element.id +'Err'),valid,false);
	return valid;	
	
}


//-----------------------------------
function validateMediaCodeOther() {
	var validOtherChecked, validOtherTextOnly, cbxOther, txtOther;
	cbxOther = document.getElementById('MediaCodeOther').checked;
	txtOther = document.getElementById('MediaCodeOtherText').value.length;
	//check to see if other checked
	validOtherChecked = (cbxOther && (txtOther!=0)) || !cbxOther;
	validOtherTextOnly = (!cbxOther && (txtOther==0)) || cbxOther;
	//alert(cbxOther+ ' ' + txtOther +' ' +validOtherChecked + ' ' + validOtherTextOnly);
	correctHeaderSpacing(document.getElementById('MediaOtherCheckedErrHeader'),validOtherChecked,true, 'The Other text box must have text when the Other checkbox is checked in the Contact Us section');
	correctHeaderSpacing(document.getElementById('MediaOtherFilledErrHeader'),validOtherTextOnly,true, 'If the Other text box is filled, the Other checkbox must be checked in the Contact Us section');
	correctHeaderSpacing(document.getElementById('MediaCodeOtherErr'),validOtherChecked && validOtherTextOnly,false);

	
	return validOtherChecked && validOtherTextOnly;
}

//-----------------------------------
function validatePandL(element)  {
	//alert(element.value.match(/^(0|-?[1-9][0-9]*)$/));
	var valid, validForm,base,p1,p2,p3;
	valid = (element.value.match(/^-?([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(\.[0-9]{1,2})?$/)!= null) || element.value.length==0;

	correctHeaderSpacing(document.getElementById('PandLErrHeader'),valid,true, 'Profits and Losses must be a dollar amount');
	//update error label next to field
	correctHeaderSpacing(document.getElementById('PandLErr'),valid,false);
	return valid;
	
}
//-----------------------------------
function validatePhone(element)  {
	
	var validAC, validForm,base,p1,p2,p3;
	base = element.name.replace(/[0123456789]/g,'');
	//alert(base + ' ' + element.name + ' ' + element.id);
	p1 = document.getElementById(base+'1').value;
	p2 = document.getElementById(base+'2').value;
	p3 = document.getElementById(base+'3').value;
	//check for area code
	validAC = (p1.substring(0,1)!='0');
	correctHeaderSpacing(document.getElementById(base+'ErrHeader'),validAC,true,element.name.replace('Phone',' Phone') + ' cannot start with 0');
	//check for well formed phone number
	validForm = ((p1.length==0) && (p2.length==0) && (p3.length==0)) || ((p1.length==3) && (p2.length==3) && (p3.length==4));
	correctHeaderSpacing(document.getElementById(base+'InvalidHeader'),validForm,true, base.replace('Phone', ' Phone')+' must be 10 digits long');
	//update error label next to field
	correctHeaderSpacing(document.getElementById(base+'Err'),validAC && validForm,false);
	return (validAC && validForm);
	
}

//-----------------------------------
function validatePrimaryPhone(element)  {

	var valid = document.getElementById('rbxO').checked || document.getElementById('PrimaryPhone1').value.length>0 || document.getElementById('PrimaryPhone2').value.length>0 || document.getElementById('PrimaryPhone3').value.length>0;
	
	correctHeaderSpacing(document.getElementById('PrimaryPhoneRequiredErrHeader'),valid,true,'Primary Phone is a required Field');
	valid = validatePhone(element) && valid;
	correctHeaderSpacing(document.getElementById('PrimaryPhoneErr'),valid,false);
	return valid;	
}

//-----------------------------------
function validatePulldownByCriteria(element,check,errLbl,errHeader,errMessage)  {

	var valid = check || element.value.length>0;
	correctHeaderSpacing(document.getElementById(errHeader),valid,true,errMessage);
	correctHeaderSpacing(document.getElementById('PrimaryPhoneErr'),valid,false);
	return valid;	
}


//-----------------------------------
function validateRequiredField(element,errLbl,errHeader,errMsg)  {
	try {
	var valid = (document.getElementById(element).value.length!=0);
	correctHeaderSpacing(document.getElementById(errHeader),valid,true,errMsg);
	correctHeaderSpacing(document.getElementById(errLbl),valid,false);
	return valid;
	} catch (err) {
	alert(element +': '+err);
	return false;
	}
	
}
//-----------------------------------
function validateSessionLanguage(element) {
	//city and state are required in some situations
	var valid = valueOfRadioChecked(document.NewClient.Language)!='Other' || document.NewClient.otherlanguage.value.length>0;
	correctHeaderSpacing(document.getElementById('LanguageOtherHeaderErr'),valid,true,'If Other is selected, text is required');
	correctHeaderSpacing(document.getElementById('LanguageOtherErr'),valid,false);
	return valid;
	
}
//-----------------------------------
function validateZip(element)  {
	
	var valid;
	valid = validateRequiredField('txtZip','ZipErr','ZipRequiredErrHeader','Zip Code is a required Field');
	if (valid) {
		//check length
		valid = (element.value.length==5);
		correctHeaderSpacing(document.getElementById('ZipErrHeader'),valid,true,'Zip Code must be 5 digits');
		correctHeaderSpacing(document.getElementById('ZipErr'),valid,false);
		if (valid) {
			//check valid zip
			valid = (document.NewClient.ZipCheck.value.indexOf(element.value)>-1);
			correctHeaderSpacing(document.getElementById('ZipErrHeader'),valid,true,'Zip Code ' + element.value +' is invalid.');
			correctHeaderSpacing(document.getElementById('ZipErr'),valid,false);
			}
		} else {
			correctHeaderSpacing(document.getElementById('ZipErrHeader'),true,true,'Zip Code must be 5 digits');
		}
	return valid;
	
}


//-->
