/*  The JavaScript Source!! http://javascript.internet.com
can click on text associated with button to select that button  */
function changeBox(cbox) {
box = eval(cbox);
box.checked = !box.checked;
}


//removes  white spaces from fields onblur
function trim(str)
{
  return compressWhiteSpace(str);
}
function compressWhiteSpace(s) {
  // Condense white space.
  s = s.replace(/\s+/g, "");
  s = s.replace(/^\s(.*)/, "$1");
  s = s.replace(/(.*)\s$/, "$1");
  return s;
}

/*  if text entered in text field or drop-down, associated button is selected auto-magically
MUST put in the correct number - remember to start count from 0 not 1 */
function selectMe() {
//question #1... if other field is filled in then button clicked and drop-down cleared
	if (document.tellUs.serviceTodayOther.value != '') {
	document.tellUs.serviceToday[12].checked=true;
	document.tellUs.serviceToday[4].selectedIndex=0;
	}
	//question #2. if other text field filled out then button selected
	if (document.tellUs.internetNeedsOther.value != '') {
	document.tellUs.internetNeeds[3].checked=true;
	}
	//question #3 if other is filled out all other buttons de-selected.
	if (document.tellUs.catBizOther.value != '')   {
			document.tellUs.catBiz[13].checked=true;
			document.tellUs.catBiz[0].checked=false;
			document.tellUs.catBiz[1].checked=false;
			document.tellUs.catBiz[2].checked=false;
			document.tellUs.catBiz[3].selectedIndex=0;
			document.tellUs.catBiz[4].checked=false;
			document.tellUs.catBiz[5].checked=false;
			document.tellUs.catBiz[6].checked=false;
			document.tellUs.catBiz[7].checked=false;
			document.tellUs.catBiz[8].checked=false;
			document.tellUs.catBiz[9].checked=false;
			document.tellUs.catBiz[10].selectedIndex=0;
			document.tellUs.catBiz[11].checked=false;
			document.tellUs.catBiz[12].checked=false;
			document.tellUs.catBiz[14].checked=false;
			document.tellUs.catBiz[15].checked=false;
	return;
	}
}
//question 3, job applicant dropdown
function jobSelect() {
	if (document.tellUs.catBiz[10].selectedIndex != 0) {
	document.tellUs.catBiz[9].checked=true;
	document.tellUs.catBiz[2].checked=false;
	document.tellUs.catBiz[3].selectedIndex=0;
	document.tellUs.catBizOther.value="";
	return;
	}
}
//question 3, contractor dropdown
function contractorSelect() {
if (document.tellUs.catBiz[3].selectedIndex != 0) {
	document.tellUs.catBiz[2].checked=true;
	document.tellUs.catBiz[9].checked=false;
	document.tellUs.catBiz[10].selectedIndex=0;
	document.tellUs.catBizOther.value="";
	return;
	}
}
//question 1, customer complaints dropdown
function concernsSelect() {
if (document.tellUs.serviceToday[4].selectedIndex != 0) {
	document.tellUs.serviceToday[3].checked=true;
	document.tellUs.serviceToday[12].checked=false;
	document.tellUs.serviceTodayOther.value="";
	return;
	}
}

/* format phone on blur */
//phone and fax number formatting
function checkPhone(nums){

var re= /\D/;
// test for this format: xxx-xxxx
//var re2 = /^\d{3}-\d{4}/; 
// test for this format: (xxx)xxx-xxxx
var re2 = /^\(\d{3}\)\s\d{3}-\d{4}$/; 
// test for this format: xxx-xxx-xxxx
//var re2 = /^\d{3}-\d{3}-\d{4}/;

for (i=0; i<nums.length;i++){
var num=eval(nums+'.value');

var newNum;
 if (num != "" && re2.test(num)!=true){
   if (num != ""){
     while (re.test(num)){
     num = num.replace(re,"");
	}
   }

  if (num.length != 10){
   
  //eval(nums).value='';
    alert('Please enter a 10 digit number');
   
  break;
    }
   else {
	   // for format  xxx-xxxx
    // newNum = num.substring(0,3) + '-' + num.substring(3,7);
     // for format (xxx) xxx-xxxx
     newNum = '(' + num.substring(0,3) + ')' + ' ' + num.substring(3,6) + '-' + num.substring(6,10);
     // for format xxx-xxx-xxxx
     // newNum = num.substring(0,3) + '-' + num.substring(3,6) + '-' + num.substring(6,10);
     eval(nums).value=newNum;
     }
	 } 
  }
}





/* validate form */
function tellUsChecker(form) {
    var errors='';
    var fieldFocus='';
	var formPass = false;
    //check the simple basic stuff first.
    if (form.name.value == '') {
        errors += 'Your First Name is required.\n';
    }
	 if (form.lastName.value == '') {
        errors += 'Your Last Name is required.\n';
    }
	
    if (form.city.value == '') {
        errors += 'City is required.\n';
    }


	//make sure state is not left on "Select One.."
	 if (form.state.value == 'Select') {
            errors += 'State is required.\n';
        }
    if (form.zipCode.value == '') {
        errors += 'Zip is required (5 digit).\n';
    }
		//if zip code is entered ensure it is valid
		if (form.zipCode.value != '') {
			var rx=new RegExp("\\d{5}");
			if (!rx.test(form.zipCode.value)) {
				errors += 'Your Zip Code must be 5 digits.\n';
			}
		}
		 if (form.phoneNumber.value == '') {
        errors += 'Phone Number is required.\n'
    }
		//if phone is entered ensure it is valid
			if (form.phoneNumber.value != '') {
				var zx=new RegExp("^\\(\\d{3}\\)\\s\\d{3}\\-\\d{4}$");
				if (!zx.test(form.phoneNumber.value)) {
					errors += 'Your phone number must be formatted (###) ###-####.\n';
					  
				}
			}
	if (form.emailAddress.value == '') {
        errors += 'Valid Email Address is required.\n';
		
    }
    
		//if email address is entered ensure it is valid
		if (form.emailAddress.value != '') {
		
			fieldValue = form.emailAddress.value;
  			fieldValue = fieldValue.replace(/\s+/g, "");
  			fieldValue = fieldValue.replace(/^\s(.*)/, "$1");
  			fieldValue = fieldValue.replace(/(.*)\s$/, "$1");
			form.emailAddress.value = fieldValue;
		
				var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
				var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
				var isOK = !r1.test(form.emailAddress.value) && r2.test(form.emailAddress.value);
				if (!isOK) {
					errors += 'Your e-mail address is not in the proper format.\n';
					
				}
		}
		
	//if Customer Complaints checked on question #1, then a drop down must be selected too. other is empty	
	if (form.serviceToday[3].checked) { 
		form.serviceTodayOther.value="";
		 if (form.serviceToday[4].selectedIndex == 0) {
            errors += 'Please select a Customer Complaints drop-down for question #1.\n';
			
        }
		else {
		form.serviceToday[3].checked=false; 
		}	  
	}
	
	//if other checked on question #1, then text field must be filled out too
	if (form.serviceToday[12].checked) { 
		 if (form.serviceTodayOther.value == '') {
            errors += 'Please enter a description to Other for question #1.\n';
        }	  
	}
	//if all other buttons on question #1 are selected, then both drop-downs are cleared and Other text field is cleared
	if ((form.serviceToday[0].checked) || (form.serviceToday[1].checked) || (form.serviceToday[2].checked) || (form.serviceToday[5].checked) || (form.serviceToday[6].checked) || (form.serviceToday[7].checked) || (form.serviceToday[8].checked) || (form.serviceToday[9].checked) || (form.serviceToday[10].checked) || (form.serviceToday[11].checked) || (form.serviceToday[13].checked) || (form.serviceToday[14].checked) || (form.serviceToday[15].checked) || (form.serviceToday[16].checked) || (form.serviceToday[17].checked)){
	form.serviceToday[4].selectedIndex=0;
		form.serviceTodayOther.value="";
	}
	//if other checked on question #2, then text field must be filled out too
	if (form.internetNeeds[3].checked) { 
		 if (form.internetNeedsOther.value == '') {
            errors += 'Please enter a description to Other for question #2.\n';
        } 	  
	}
	//question #2. if other text field filled out then button selected
	if (document.tellUs.internetNeedsOther.value != '') {
	document.tellUs.internetNeeds[3].checked=true;
	}
	//if all other buttons on question #3 are selected, then both drop-downs are cleared and Other text field is cleared
	if ((form.catBiz[0].checked) || (form.catBiz[1].checked) || (form.catBiz[4].checked) || (form.catBiz[5].checked) || (form.catBiz[6].checked) || (form.catBiz[7].checked) || (form.catBiz[8].checked) || (form.catBiz[11].checked) || (form.catBiz[12].checked) || (form.catBiz[14].checked) || (form.catBiz[15].checked)){
	form.catBiz[3].selectedIndex=0;
	form.catBiz[10].selectedIndex=0;
		form.catBizOther.value="";
	}
	//if other checked on question #3, then text field must be filled out too
	if (form.catBiz[13].checked) { 
	form.catBiz[3].selectedIndex=0;
	form.catBiz[10].selectedIndex=0;

		 if (form.catBizOther.value == '') {
            errors += 'Please enter a description to Other for question #3.\n';
        } 	  
	}
	
	//if Contractor checked on question #3, then a drop down must be selected too
	if (form.catBiz[2].checked) { 
		form.catBizOther.value="";
		form.catBiz[10].selectedIndex=0;
		 if (form.catBiz[3].selectedIndex == 0) {
            errors += 'Please select a Contractor drop-down for question #3.\n';
        }
		else {		
			form.catBiz[2].checked=false;	
		}	
	}
	
	//if Job Applicant checked on question #3, then a drop down must be selected too
	if (form.catBiz[9].checked) { 
	form.catBizOther.value="";
	form.catBiz[3].selectedIndex=0;
		 if (form.catBiz[10].selectedIndex == 0) {
            errors += 'Please select a Job Applicant drop-down for question #3.\n';

        }
		else {
			form.catBiz[9].checked=false;
		}	
	}
	
	
    //return failures if it failed validation
    if (errors != ''){
	//strip out extra white space
	for (var i=0;i<form.length;i++) {
			fieldValue = form.elements[i].value;
  			fieldValue = fieldValue.replace(/\s+/g, " ");
  			fieldValue = fieldValue.replace(/^\s(.*)/, "$1");
  			fieldValue = fieldValue.replace(/(.*)\s$/, "$1");
			form.elements[i].value = fieldValue;
		}
        alert('The required information is incomplete or contains errors:\t\t\t\t\t\n\n'+errors);
		return false;
		
		
	} 
	if  (errors == '') {
		return true;
    }
}

<!-- Begin disable enter/return key so form isn't submitted by accident. must click submit button-->
function disableEnterKey () {
var key;      
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox      

     return (key != 13);
}