function findObj(n, d) {
  var p,i,x;  if(!d) d=document;
if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++)
x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function validateForm() {

  var i,p,q,nm,test,num,min,max,errors='',args=validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) {
  	test=args[i+2];
	val=findObj(args[i]);
    if (val) {
		nm=val.id;
		document.getElementById(nm).style.backgroundColor='#ffffa0';
		if ((val=val.value)!= "" ) {
      		if (test.indexOf('isEmail')!=-1) {
				p=val.indexOf('@');
        		if (p<1 || p==(val.length-1)) {
					document.getElementById(nm).style.backgroundColor='#FFCCCC';
					errors+='- '+nm+' must contain an e-mail address.\n';
				}
      		} else if (test!='R') {
				num = parseFloat(val);
        		if (isNaN(val))
					errors+='- '+nm+' must contain your name.\n';
        		if (test.indexOf('inRange') != -1) {
					p=test.indexOf(':');
	          		min=test.substring(8,p); max=test.substring(p+1);
	          		if (num<min || max<num)
					errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    			}
			}
		} else if (test.charAt(0) == 'R') {
			switch (nm) {
				case 'salutation':
					errors += '- Your title is required.\n';
					break;					
				case 'first_name':
					errors += '- Your first name is required.\n';
					break;
				case 'last_name':
					errors += '- Your last name is required.\n';
					break;
				case 'phone':
					errors += '- Your phone number is required.\n';
					break;
				case 'mobile':
					errors += '- Your mobile number is required.\n';
					break;
				case 'birth_date':
					errors += '- Your date of birth is required.\n';
					break;		
				case '00N20000000kkcV':
					errors += '- Your gender is required.\n';
					break;	
				case '00N20000000kkbx':
					errors += '- Your marital status is required.\n';
					break;	
				case 'street':
					errors += '- Your address is required.\n';
					break;						
				case 'city':
					errors += '- Your town/city is required.\n';
					break;	
				case 'state':
					errors += '- Your county is required.\n';
					break;	
				case 'zip':
					errors += '- Your post code is required.\n';
					break;
				case 'agency_first_name':
					errors += '- The agency contact first name is required.\n';
					break;
				case 'agency_last_name':
					errors += '- The agency contact last name is required.\n';
					break;		
				case '00N20000000knPf':
					errors += '- The agency name is required.\n';
					break;	
				case '00N20000000knQy':
					errors += '- The agency address line 1 is required.\n';
					break;	
					break;	
				case '00N20000000knQz':
					errors += '- The agency town/city is required.\n';
					break;						
				case '00N20000000knQs':
					errors += '- The agency county is required.\n';
					break;						
				case '00N20000000knQt':
					errors += '- The agency post code is required.\n';
					break;						
				case '00N20000000kq9Z':
					errors += '- The agency country is required.\n';
					break;					
				case '00N20000000knQ6':
					errors += '- The assignment rate is required.\n';
					break;
				case '00N20000000knPh':
					errors += '- Please enter hourly, daily or fixed for your rate\n';
					break;								
				case '00N20000000knPi':
					errors += '- The assignment start date is required.\n';
					break;	
				case '00N20000000kkbr':
					errors += '- Please enter your bank name.\n';
					break;	
				case '00N20000000kkcB':
					errors += '- Please enter your bank branch name.\n';
					break;	
				case '00N20000000kkbw':
					errors += '- Please enter your bank sort code.\n';
					break;	
				case '00N20000000kkbK':
					errors += '- Please enter your account number.\n';
					break;	
				case '00N20000000kkbJ':
					errors += '- Please enter your account name.\n';
					break;						
				case '00N20000000kkbm':
					errors += '- Please enter your national insurance number.\n';
					break;					
				case '00N20000000knvH':
					errors += '- Do you have a personal pension.\n';
					break;		
				case '00N20000000knS9':
					errors += '- Is the assignment duration months weeks or years?\n';
					break;	
				case '00N20000000kkcl':
					errors += '- Please enter the name of your next of kin\n';
					break;						
				case '00N20000000kkdU':
					errors += '- Please enter your next of kins relationship to you\n';
					break;	
				case '00N20000000kkcm':
					errors += '- Please enter the telephone number of your next of kin\n';
					break;						
				case 'lead_source':
					errors += '- How did you hear about us?\n';
					break;
				case 'first_reference_title':
					errors += '- Please enter the title for your first reference.\n';
					break;
				case 'first_reference_first_name':
					errors += '- Please enter the first name for your first reference.\n';
					break;
				case 'first_reference_last_name':
					errors += '- Please enter the last name for your first reference.\n';
					break;					
				case 'first_reference_company':
					errors += '- Please enter the company name for your first reference.\n';
					break;	
				case 'first_reference_phone':
					errors += '- Please enter the phone number for your first reference.\n';
					break;	
				case 'first_reference_mobile':
					errors += '- Please enter the mobile number for your first reference.\n';
					break;	
				case 'second_reference_title':
					errors += '- Please enter the title for your first reference.\n';
					break;	
				case 'second_reference_first_name':
					errors += '- Please enter the first name for your second reference.\n';
					break;	
				case 'second_reference_last_name':
					errors += '- Please enter the last name for your second reference.\n';
					break;	
				case 'second_reference_company':
					errors += '- Please enter the company name for your second reference.\n';
					break;	
				case 'second_reference_phone':
					errors += '- Please enter the phone number for your second reference.\n';
					break;
				case 'second_reference_mobile':
					errors += '- Please enter the mobile number for your second reference.\n';
					break;
				default:
					errors += '- '+nm+' is required.\n';
					break;
			}
			document.getElementById(nm).style.backgroundColor='#FFCCCC';
		} else if (test.charAt(0) == 'N') {
			errors += '- '+nm+' is required.\n';
			document.getElementById(nm).style.backgroundColor='#FFCCCC';
		} else {
			switch (nm) {
				case '00N20000000kkdT':
					errors += '- Your Email address is required.\n';
					break;	
				case 'first_reference_email':
					errors += '- The Email address for your first reference is required.\n';
					break;
				case 'second_reference_email':
					errors += '- The Email address for your second reference is required.\n';
					break;				
				default:
					errors += '- '+nm+' is required.\n';
					break;
			}
			document.getElementById(nm).style.backgroundColor='#FFCCCC';
		}
   	}
	document.getElementById(nm).className='form-input-error';
  } if (errors)
  alert('Please fill in the fields which are highlighted in red. \n\n' + errors);
  //mergeDescriptionFields();
  document.field_returnValue = (errors == '');
}

function mergeDescriptionFields() {
  	document.getElementById('description').value = 'Birth Date: ' + document.getElementById('birthdate').value + '\n' + 'Home Phone: ' + document.getElementById('phone').value + '\n' + 'Contract Sector: ' + document.getElementById('industry').value + '\n';
  
 	// agency contact name = agency first name + agency last
  	document.getElementById('00N20000000kpI1').value = document.getElementById('agency_first_name').value + ' ' + document.getElementById('agency_last_name').value
  	// References
  	document.getElementById('00N20000000kvTo').value = 'First Reference\n Name: ' + document.getElementById('first_reference_title').value + ' ' + document.getElementById('first_reference_first_name').value + ' ' + document.getElementById('first_reference_last_name').value + '\nCompany:' + document.getElementById('first_reference_company').value + '\nEmail: ' + document.getElementById('first_reference_email').value + '\nTel: ' + document.getElementById('first_reference_phone').value + '\nMob: ' + document.getElementById('first_reference_mobile').value + '\n-----------------\n' + 'Second Reference\n Name: ' + document.getElementById('second_reference_title').value + ' ' + document.getElementById('second_reference_first_name').value + ' ' + document.getElementById('second_reference_last_name').value + '\nCompany:' + document.getElementById('second_reference_company').value + '\nEmail: ' + document.getElementById('second_reference_email').value + '\nTel: ' + document.getElementById('second_reference_phone').value + '\nMob: ' + document.getElementById('second_reference_mobile').value + '\n';
  

	
	// set the employee start date to todays date
	var employee_start_date=new Date();
	employee_start_date = formatDate(employee_start_date,'dd/MM/yyyy');
	
	assignment_start_date = document.getElementById('start_date').value;
	//assignment_start_date = formatDate(assignment_start_date,'dd/MM/yyyy');
	if (assignment_start_date != '' && assignment_start_date < employee_start_date) {
		employee_start_date = assignment_start_date;
	} 
	//alert(employee_start_date);
	
	// Put the client agency details in the description field
  	//copy start and end dates to the sforce hidden fields
	document.getElementById('00N20000000knPi').value = document.getElementById('start_date').value;
	document.getElementById('00N20000000kpAH').value = document.getElementById('end_date').value;
	document.getElementById('00N20000000kp7U').value = employee_start_date;
	document.getElementById('00N20000000kkca').value = document.getElementById('birthdate').value;
	
	document.getElementById('description').value = document.getElementById('description').value + '-------------\n' + 'Client/Agency Details\nName:' + document.getElementById('00N20000000knQw').value + ' ' + document.getElementById('agency_first_name').value + ' ' + document.getElementById('agency_last_name').value + '\nCompany:' + document.getElementById('00N20000000knPf').value + '\nEmail:' + document.getElementById('00N20000000knRQ').value + '\nTel:' + document.getElementById('00N20000000knRV').value + '\nFax:' + document.getElementById('00N20000000knQ5').value + '\nAddress Line 1:' + document.getElementById('00N20000000knQy').value + '\nTown/City:' + document.getElementById('00N20000000knQz').value + '\nCounty:' + document.getElementById('00N20000000knQs').value + '\nPost Code:' + document.getElementById('00N20000000knQs').value + '\nCountry:' + document.getElementById('00N20000000kq9Z').value;

	// set industry sector
	document.getElementById('00N20000000knRz').value = document.getElementById('industry').value;
	
	if (document.getElementById('sortcode').value != '') {
		str = document.getElementById('sortcode').value;
		str = str.substring(0,2) + '-' + str.substring(2,4) + '-' + str.substring(4,6);
		//alert (str);
		document.getElementById('00N20000000kkbw').value =  str;
	}
	document.getElementById('company').value = document.getElementById('first_name').value + ' ' + document.getElementById('last_name').value
}

function setContractedOut () {

	if (document.getElementById('00N20000000knvH').value != 'Yes') {
		document.getElementById('00N20000000kkck').checked = '';
		document.getElementById('00N20000000kkck').disabled = '1';
	} else {
		document.getElementById('00N20000000kkck').disabled = '';	
	}
}

function referrerMergeDescriptionFields () {
	titleref = document.getElementById('titleofreferredcontractor');
	description = document.getElementById('description');
	title = titleref[titleref.selectedIndex].text;
	
	document.getElementById('description').value = 'Referred Details' + '\n' + 'Name: ' + title + ' ' + document.getElementById('fornameofreferredcontractor').value + ' ' + document.getElementById('surnameofreferredcontractor').value + '\n' + 'Email:' + document.getElementById('emailaddressofreferredcontractor').value + '\n';

	if (document.getElementById('opt_out').checked) {
		document.getElementById('description').value = document.getElementById('description').value + 'NOT AGREED to receive phone, email, or postal communications from Work2live Ltd';
	} else {
		document.getElementById('description').value = document.getElementById('description').value + 'NOT AGREED to receive phone, email, or postal communications from Work2live Ltd.';
	}
	//alert(document.getElementById('description').value);
	//alert (description);
}
