$(function() {
	
	
	
	
	//FORM VALIDATION/////////////////////////////////////////////////
	/////////////////////////////////////////////////////////////////
	
	
	function generalInit(){
		
		//filters
		var emailFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		
		//initiatiate usablility functions
		usablity();
		
		
		//on sumbmit validation
		$('#submit').click(function(e){
						
			var errorList = [];
		
			//first person first name
			if($('#first_name').val() == "" && $('#first_name').hasClass('required')){
				errorList.push('first name required');
			}
			
			//second persons first name
			if($('#00N60000001NRD2').val() == "" && $('#00N60000001NRD2').hasClass('required')){
				errorList.push('second persons first name required');
			}
			
			//first person last name
			if($('#last_name').val() == "" && $('#last_name').hasClass('required')){
				errorList.push('last name required');
			}
			
			//second persons last name
			if($('#00N60000001PgbF').val() == "" && $('#00N60000001PgbF').hasClass('required')){
				errorList.push('second persons last name required');
			}
			
			//first person gender
			if($('#00N60000001NRCs').val() == "" && $('#00N60000001NRCs').hasClass('required')){
				errorList.push('gender required');
			}
			
			//second persons gender
			if($('#00N60000001NRDM').val() == "" && $('#00N60000001NRDM').hasClass('required')){
				errorList.push('second persons gender required');
			}
			
			//first person race
			if($('#00N60000001NRBb').val() == "" && $('#00N60000001NRBb').hasClass('required')){
				errorList.push('race required');
			}
			
			//second person race
			if($('#00N60000001NRD7').val() == "" && $('#00N60000001NRD7').hasClass('required')){
				errorList.push('second persons race required');
			}
			
			//address
			if($('#street').val() == "" && $('#street').hasClass('required')){
				errorList.push('street address required');
			}
			
			//city
			if($('#city').val() == "" && $('#city').hasClass('required')){
				errorList.push('city required');
			}
			
			//zip
			if($('#zip').val() == ""  && $('#zip').hasClass('required')){
				errorList.push('zip required');
			}
			
			//state
			if($('#state').val() == "" && $('#state').hasClass('required')){
				errorList.push('state required');
			}
			
			//email
			if(!emailFilter.test($('#email').val()) && $('#email').hasClass('required')){
				errorList.push('valid email address required');
			}
			
			//relationship
			if($('#00N60000001fI89').val() == "" && $('#00N60000001fI89').hasClass('required')){
				errorList.push('relationship required');
			}
			
			//second persons email
			if(!emailFilter.test($('#00N60000001NSdp').val()) && $('#00N60000001NSdp').hasClass('required')){
				errorList.push('second persons valid email address required');
			}
			
			//referral source
			if($('#00N60000001NRFS').val() == "" && $('#00N60000001NRFS').hasClass('required')){
				errorList.push('referral source required');
			}
			
			//preffered phone
			if($('#00N60000001qHFF').val() == "" && $('#00N60000001qHFF').hasClass('required')){
				errorList.push('preffered phone required');
			}
			
			//phones
			if($('#00N60000001NR97').val() == "" && $('#00N60000001NR97').hasClass('required') || $('#phone').val() == "" && $('#phone').hasClass('required') || $('#00N60000001NSYG').val() == "" && $('#00N60000001NSYG').hasClass('required') ){
				errorList.push('phone number required');
			}
			
			//occupation
			if($('#00N60000001NRCx').val() == "" && $('#00N60000001NRCx').hasClass('required')){
				errorList.push('occupation required');
			}
			
			//second persons occupation
			if($('#00N60000001ci0o').val() == "" && $('#00N60000001ci0o').hasClass('required')){
				errorList.push('second persons occupation required');
			}
			
			//date of marriage
			if($('#dom_mm').val() == "MM" && $('#dom_mm').hasClass('required') || $('#dom_dd').val() == "DD" && $('#dom_dd').hasClass('required') || $('#dom_yyyy').val() == "YYYY" && $('#dom_yyyy').hasClass('required')){
				errorList.push('date of marriage required');
			}
			
			//date of birth
			if($('#parent1_dob_mm').val() == "MM" && $('#parent1_dob_mm').hasClass('required') || $('#parent1_dob_dd').val() == "DD" && $('#parent1_dob_dd').hasClass('required') || $('#parent1_dob_yyyy').val() == "YYYY" && $('#parent1_dob_yyyy').hasClass('required')){
				errorList.push('date of birth required');
			}
			
			//second persons date of birth
			if($('#parent2_dob_mm').val() == "MM" && $('#parent2_dob_mm').hasClass('required') || $('#parent2_dob_dd').val() == "DD" && $('#parent2_dob_dd').hasClass('required') || $('#parent2_dob_yyyy').val() == "YYYY" && $('#parent2_dob_yyyy').hasClass('required')){
				errorList.push('second persons date of birth required');
			}
			
			//marital status
			if($('#00N60000001NRFN').val() == "" && $('#00N60000001NRFN').hasClass('required')){
				errorList.push('marital status required');
			}
			
			
			
			///////////////CHILD ONE///////////////
			
			//first name
			if($('#00N60000001ehEb').val() == "" && $('#00N60000001ehEb').hasClass('required')){
				errorList.push('child one first name required');
			}
			
			//last name
			if($('#00N60000001eiNz').val() == "" && $('#00N60000001eiNz').hasClass('required')){
				errorList.push('child one last name required');
			}
			
			//date of birth
			if($('#child1_dob_mm').val() == "MM" && $('#child1_dob_mm').hasClass('required') || $('#child1_dob_dd').val() == "DD" && $('#child1_dob_dd').hasClass('required') || $('#child1_dob_yyyy').val() == "YYYY" && $('#child1_dob_yyyy').hasClass('required')){
				errorList.push('child one date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDl').val() == "" && $('#00N60000001ehDl').hasClass('required')){
				errorList.push('child one gender required');
			}
			
			//origin
			if($('#00N60000001eijf').val() == "" && $('#00N60000001eijf').hasClass('required')){
				errorList.push('child one origin required');
			}
			
			
			
			///////////////CHILD TWO///////////////
			
			//first name
			if($('#00N60000001ehED').val() == "" && $('#00N60000001ehED').hasClass('required')){
				errorList.push('child two first name required');
			}
			
			//last name
			if($('#00N60000001eiO0').val() == "" && $('#00N60000001eiO0').hasClass('required')){
				errorList.push('child two last name required');
			}
			
			//date of birth
			if($('#child2_dob_mm').val() == "MM" && $('#child2_dob_mm').hasClass('required') || $('#child2_dob_dd').val() == "DD" && $('#child2_dob_dd').hasClass('required') || $('#child2_dob_yyyy').val() == "YYYY" && $('#child2_dob_yyyy').hasClass('required')){
				errorList.push('child two date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDm').val() == "" && $('#00N60000001ehDm').hasClass('required')){
				errorList.push('child two gender required');
			}
			
			//origin
			if($('#00N60000001eijk').val() == "" && $('#00N60000001eijk').hasClass('required')){
				errorList.push('child two origin required');
			}
			
			
			
			///////////////CHILD THREE///////////////
			
			//first name
			if($('#00N60000001ehDV').val() == "" && $('#00N60000001ehDV').hasClass('required')){
				errorList.push('child three first name required');
			}
			
			//last name
			if($('#00N60000001ehDW').val() == "" && $('#00N60000001ehDW').hasClass('required')){
				errorList.push('child three last name required');
			}
			
			//date of birth
			if($('#child3_dob_mm').val() == "MM" && $('#child3_dob_mm').hasClass('required') || $('#child3_dob_dd').val() == "DD" && $('#child3_dob_dd').hasClass('required') || $('#child3_dob_yyyy').val() == "YYYY" && $('#child3_dob_yyyy').hasClass('required')){
				errorList.push('child three date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDn').val() == "" && $('#00N60000001ehDn').hasClass('required')){
				errorList.push('child three gender required');
			}
			
			//origin
			if($('#00N60000001ehDX').val() == "" && $('#00N60000001ehDX').hasClass('required')){
				errorList.push('child three origin required');
			}
			
			
			
			///////////////CHILD FOUR///////////////
			
			//first name
			if($('#00N60000001ehDZ').val() == "" && $('#00N60000001ehDZ').hasClass('required')){
				errorList.push('child four first name required');
			}
			
			//last name
			if($('#00N60000001ehDa').val() == "" && $('#00N60000001ehDa').hasClass('required')){
				errorList.push('child four last name required');
			}
			
			//date of birth
			if($('#child4_dob_mm').val() == "MM" && $('#child4_dob_mm').hasClass('required') || $('#child4_dob_dd').val() == "DD" && $('#child4_dob_dd').hasClass('required') || $('#child4_dob_yyyy').val() == "YYYY" && $('#child4_dob_yyyy').hasClass('required')){
				errorList.push('child four date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDo').val() == "" && $('#00N60000001ehDo').hasClass('required')){
				errorList.push('child four gender required');
			}
			
			//origin
			if($('#00N60000001ehDb').val() == "" && $('#00N60000001ehDb').hasClass('required')){
				errorList.push('child four origin required');
			}
			
			
			
			///////////////CHILD FIVE///////////////
			
			//first name
			if($('#00N60000001ehDd').val() == "" && $('#00N60000001ehDd').hasClass('required')){
				errorList.push('child five first name required');
			}
			
			//last name
			if($('#00N60000001ehDe').val() == "" && $('#00N60000001ehDe').hasClass('required')){
				errorList.push('child five last name required');
			}
			
			//date of birth
			if($('#child5_dob_mm').val() == "MM" && $('#child5_dob_mm').hasClass('required') || $('#child5_dob_dd').val() == "DD" && $('#child5_dob_dd').hasClass('required') || $('#child5_dob_yyyy').val() == "YYYY" && $('#child5_dob_yyyy').hasClass('required')){
				errorList.push('child five date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDp').val() == "" && $('#00N60000001ehDp').hasClass('required')){
				errorList.push('child five gender required');
			}
			
			//origin
			if($('#00N60000001ehDf').val() == "" && $('#00N60000001ehDf').hasClass('required')){
				errorList.push('child five origin required');
			}
			
			
			
			///////////////CHILD SIX///////////////
			
			//first name
			if($('#00N60000001ehDh').val() == "" && $('#00N60000001ehDh').hasClass('required')){
				errorList.push('child six first name required');
			}
			
			//last name
			if($('#00N60000001ehDi').val() == "" && $('#00N60000001ehDi').hasClass('required')){
				errorList.push('child six last name required');
			}
			
			//date of birth
			if($('#child6_dob_mm').val() == "MM" && $('#child6_dob_mm').hasClass('required') || $('#child6_dob_dd').val() == "DD" && $('#child6_dob_dd').hasClass('required') || $('#child6_dob_yyyy').val() == "YYYY" && $('#child6_dob_yyyy').hasClass('required')){
				errorList.push('child six date of birth required');
			}
			
			//gender
			if($('#00N60000001ehDq').val() == "" && $('#00N60000001ehDq').hasClass('required')){
				errorList.push('child six gender required');
			}
			
			//origin
			if($('#00N60000001ehDj').val() == "" && $('#00N60000001ehDj').hasClass('required')){
				errorList.push('child six origin required');
			}
			
			//initiatiate format dates for proper salesforce encoding	
			if(window.location.pathname == '/z7_asap_preapplication_form.php'){
				formatDates();
			}
			
	
			//stop form submission and display error 
			if(errorList.length >= 1){
				
				//display errors
				for (var i = 0; i < errorList.length; i++) {
					alert(errorList[i]);
				}
				
				return false;
			}
			
		
	}) //end of validation submission
		
	}
	
	
	
	
	
	//FORM USABILITY//////////////////////////////////////////////////
	/////////////////////////////////////////////////////////////////
	
	function usablity(){
				
		//if second person joining show second person fields and make required
		$('.secondPersonJoin').click(function(){
											  
			if($(this).val() == 'Yes'){
				$('.spHidden').fadeIn(500);
				$('#00N60000001NRD2').addClass('required');
				$('#00N60000001PgbF').addClass('required');
				$('#00N60000001fI89').addClass('required');
				$('#00N60000001NRD7').addClass('required');
			}else{
				$('.spHidden').hide();
				$('#00N60000001NRD2').removeClass('required');
				$('#00N60000001PgbF').removeClass('required');
				$('#00N60000001fI89').removeClass('required');
				$('#00N60000001NRD7').removeClass('required');
			}
		
		})
		
		//get value of phone dropdown and make field required
		$('#00N60000001qHFF').change(function(){
											  
			//set border color to black on change
			$('#00N60000001NR97, #phone, #00N60000001NSYG').css({'border-color': '#777'});
			
			//set border color of required field to orange and make field required
			if($(this).val() == 'Work'){
				$('#00N60000001NR97').addClass('required').css({'border-color': '#F58821'});
			}else if($(this).val() == 'Home'){
				$('#phone').addClass('required').css({'border-color': '#F58821'});
			}else if($(this).val() == 'Mobile'){
				$('#00N60000001NSYG').addClass('required').css({'border-color': '#F58821'});
			}								  
											  
		})
		
		//show marriage date fields, make parent two fields required
		$('#00N60000001NRFN').change(function(){
			if($(this).val() == 'Married'){
				$('#marriage_date').fadeIn(500);
				$('.asterisk').fadeIn(500);
				$('#00N60000001NRD2, #00N60000001PgbF, 00N60000001ci0o, #parent2_dob_mm, #parent2_dob_dd, #parent2_dob_yyyy, #00N60000001NSdp, #00N60000001NRDM, #dom_mm, #dom_dd, #dom_yyyy').addClass('required');
			}else{
				$('#marriage_date').hide();
				$('.asterisk').hide();
				$('#00N60000001NRD2, #00N60000001PgbF, 00N60000001ci0o, #parent2_dob_mm, #parent2_dob_dd, #parent2_dob_yyyy, #00N60000001NSdp, #00N60000001NRDM, #dom_mm, #dom_dd, #dom_yyyy').removeClass('required');
			}
		})
		
		//make childs fields required based of of name value//
		
		//child one
		$('#00N60000001ehEb').keyup(function(){childOneRequired();})
		function childOneRequired(){
			if($('#00N60000001ehEb').val().length >= 1){
				$('.c1Hide').fadeIn(500);
				$('#00N60000001ehEb, #00N60000001eiNz, #child1_dob_mm, #child1_dob_dd, #child1_dob_yyyy, #00N60000001ehDl, #00N60000001eijf').addClass('required');
			}else{
				$('.c1Hide').hide();
				$('#00N60000001ehEb, #00N60000001eiNz, #child1_dob_mm, #child1_dob_dd, #child1_dob_yyyy, #00N60000001ehDl, #00N60000001eijf').removeClass('required');
			}
		}
		
		//child two
		$('#00N60000001ehED').keyup(function(){childTwoRequired();})
		function childTwoRequired(){
			if($('#00N60000001ehED').val().length >= 1){
				$('.c2Hide').fadeIn(500);
				$('#00N60000001ehED, #00N60000001eiO0, #child2_dob_mm, #child2_dob_dd, #child2_dob_yyyy, #00N60000001ehDm, #00N60000001eijk').addClass('required');
			}else{
				$('.c2Hide').hide();
				$('#00N60000001ehED, #00N60000001eiO0, #child2_dob_mm, #child2_dob_dd, #child2_dob_yyyy, #00N60000001ehDm, #00N60000001eijk').removeClass('required');
			}
		}
		
		//child three
		$('#00N60000001ehDV').keyup(function(){childThreeRequired();})
		function childThreeRequired(){
			if($('#00N60000001ehDV').val().length >= 1){
				$('.c3Hide').fadeIn(500);
				$('#00N60000001ehDV, #00N60000001ehDW, #child3_dob_mm, #child3_dob_dd, #child3_dob_yyyy, #00N60000001ehDn, #00N60000001ehDX').addClass('required');
			}else{
				$('.c3Hide').hide();
				$('#00N60000001ehDV, #00N60000001ehDW, #child3_dob_mm, #child3_dob_dd, #child3_dob_yyyy, #00N60000001ehDn, #00N60000001ehDX').removeClass('required');
			}
		}
		
		//child four
		$('#00N60000001ehDZ').keyup(function(){childFourRequired();})
		function childFourRequired(){
			if($('#00N60000001ehDZ').val().length >= 1){
				$('.c4Hide').fadeIn(500);
				$('#00N60000001ehDZ, #00N60000001ehDa, #child4_dob_mm, #child4_dob_dd, #child4_dob_yyyy, #00N60000001ehDo, #00N60000001ehDb').addClass('required');
			}else{
				$('.c4Hide').hide();
				$('#00N60000001ehDZ, #00N60000001ehDa, #child4_dob_mm, #child4_dob_dd, #child4_dob_yyyy, #00N60000001ehDo, #00N60000001ehDb').removeClass('required');
			}
		}
		
		//child five
		$('#00N60000001ehDd').keyup(function(){childFiveRequired();})
		function childFiveRequired(){
			if($('#00N60000001ehDd').val().length >= 1){
				$('.c5Hide').fadeIn(500);
				$('#00N60000001ehDd, #00N60000001ehDe, #child5_dob_mm, #child5_dob_dd, #child5_dob_yyyy, #00N60000001ehDp, #00N60000001ehDf').addClass('required');
			}else{
				$('.c5Hide').hide();
				$('#00N60000001ehDd, #00N60000001ehDe, #child5_dob_mm, #child5_dob_dd, #child5_dob_yyyy, #00N60000001ehDp, #00N60000001ehDf').removeClass('required');
			}
		}
		
		//child six
		$('#00N60000001ehDh').keyup(function(){childSixRequired();})
		function childSixRequired(){
			if($('#00N60000001ehDh').val().length >= 1){
				$('.c6Hide').fadeIn(500);
				$('#00N60000001ehDh, #00N60000001ehDi, #child6_dob_mm, #child6_dob_dd, #child6_dob_yyyy, #00N60000001ehDq, #00N60000001ehDj').addClass('required');
			}else{
				$('.c6Hide').hide();
				$('#00N60000001ehDh, #00N60000001ehDi, #child6_dob_mm, #child6_dob_dd, #child6_dob_yyyy, #00N60000001ehDq, #00N60000001ehDj').removeClass('required');
			}
		}
		
		//initiate word count limit
		$('#00N60000001NRGQ, #00N60000001NRGa, #00N60000001NRCJ, #00N60000001cS6h').counter({
            type: 'char',
            goal: 255,
            count: 'up'           
        });

	}
	
	
	
	
	
	//FORMAT DATES////////////////////////////////////////////////////
	/////////////////////////////////////////////////////////////////
	
	function formatDates(){
	
		//converts asap form dates and inputs into correct fields
		
		function makeDate(strYYYY, strMM, strDD){return strMM +"/" +strDD +"/" +strYYYY;}
		var formName = document.getElementById("asaPreApp");
		
		//assign DOB to parent1 date field
		if(document.getElementById("first_name").value != ""){
			document.getElementById("00N60000001dB9K").value = makeDate(formName.parent1_dob_yyyy.value, formName.parent1_dob_mm.value, formName.parent1_dob_dd.value);
		}
	
		//assign DOB to parent2 date field
		if(document.getElementById("00N60000001NRD2").value != ""){
			document.getElementById("00N60000001dB9H").value = makeDate(formName.parent2_dob_yyyy.value, formName.parent2_dob_mm.value, formName.parent2_dob_dd.value);
		}
	
		//assign date of marriage
		if(document.getElementById("00N60000001NRFN").value == "Married"){
			document.getElementById("Date_of_Marriage__c").value = makeDate(formName.dom_yyyy.value, formName.dom_mm.value, formName.dom_dd.value);
		} else {
			document.getElementById("Date_of_Marriage__c").value = "";
		}
	
		//assign child 1 birthdate
		if(document.getElementById("00N60000001ehEb").value != "" || document.getElementById("00N60000001ehEb").value != ""){
			document.getElementById("00N60000001cS2k").value = makeDate(formName.child1_dob_yyyy.value, formName.child1_dob_mm.value, formName.child1_dob_dd.value);
		}
	
		//assign child 2 birthdate
		if(document.getElementById("00N60000001ehED").value != "" || document.getElementById("00N60000001ehED").value != ""){
			document.getElementById("00N60000001cS4v").value = makeDate(formName.child2_dob_yyyy.value, formName.child2_dob_mm.value, formName.child2_dob_dd.value);
		}
		
		//assign child 3 birthdate
		if(document.getElementById("00N60000001ehDV").value != "" || document.getElementById("00N60000001ehDV").value != ""){
			document.getElementById("00N60000001ehDU").value = makeDate(formName.child3_dob_yyyy.value, formName.child3_dob_mm.value, formName.child3_dob_dd.value);
		}
	
		//assign child 4 birthdate
		if(document.getElementById("00N60000001ehDZ").value != "" || document.getElementById("00N60000001ehDZ").value != ""){
			document.getElementById("00N60000001ehDY").value = makeDate(formName.child4_dob_yyyy.value, formName.child4_dob_mm.value, formName.child4_dob_dd.value);
		}
	
		//assign child 5 birthdate
		if(document.getElementById("00N60000001ehDd").value != "" || document.getElementById("00N60000001ehDd").value != ""){
			document.getElementById("00N60000001ehDc").value = makeDate(formName.child5_dob_yyyy.value, formName.child5_dob_mm.value, formName.child5_dob_dd.value);
		}
	
		//assign child 6 birthdate
		if(document.getElementById("00N60000001ehDh").value != "" || document.getElementById("00N60000001ehDh").value != ""){
			document.getElementById("00N60000001ehDg").value = makeDate(formName.child6_dob_yyyy.value, formName.child6_dob_mm.value, formName.child6_dob_dd.value);
		}
		
		
	}
	
	
		
		
	//EXECUTABLES
	generalInit();
	

	
}); //END OF DOM READY
