function validate(){
	var isIE = false;
	if(navigator.userAgent.indexOf("MSIE") != -1){
		isIE = true;
	}
	submitFlag = true;
	document.getElementById("replace").innerHTML = "";
	var email = document.quoterequest.email.value
	
	
	/* contact information */
	if(document.quoterequest.contactname.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Contact Name required. ");
		var fullname = document.getElementById("replace");
		fullname.appendChild(newText);
		// red asterisk		
		var fname = document.getElementById("contactname_label");
		fname.setAttribute('class', 'redflag');
		if(isIE){
			contactname_label.style.cssText = "color: #f00;";
		}
	}
	else if(document.quoterequest.contactname.value.length!=0){
		var fname = document.getElementById("contactname_label");
		fname.setAttribute('class', '');
		if(isIE){
			contactname_label.style.cssText = "color: #888374;";
		}	
	}	
	if(document.quoterequest.jobtitle.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Job Title required. ");
		var jtitle = document.getElementById("replace");
		jtitle.appendChild(newText);
		// red asterisk
		var job = document.getElementById("jobtitle_label");
		job.setAttribute('class', 'redflag');
		if(isIE){
			jobtitle_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.jobtitle.value.length!=0){
		var job = document.getElementById("jobtitle_label");
		job.setAttribute('class', '');
		if(isIE){
			jobtitle_label.style.cssText = "color: #888374;";
		}	
	}	
	if(document.quoterequest.companyname.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Company Name required. ");
		var comp = document.getElementById("replace");
		comp.appendChild(newText);
		// red asterisk
		var company = document.getElementById("companyname_label");
		company.setAttribute('class', 'redflag');
		if(isIE){
			companyname_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.companyname.value.length!=0){		
		var company = document.getElementById("companyname_label");
		company.setAttribute('class', '');
		if(isIE){
			companyname_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.address1.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Address required. ");
		var add = document.getElementById("replace");
		add.appendChild(newText);
		// red asterisk
		var address = document.getElementById("address1_label");
		address.setAttribute('class', 'redflag');
		if(isIE){
			address1_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.address1.value.length!=0){
		var address = document.getElementById("address1_label");
		address.setAttribute('class', '');
		if(isIE){
			address1_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.citystatezip.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* City, State and Zip are required. ");
		var csz = document.getElementById("replace");
		csz.appendChild(newText);
		// red asterisk
		var citystate = document.getElementById("citystatezip_label");
		citystate.setAttribute('class', 'redflag');
		if(isIE){
			citystatezip_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.citystatezip.value.length!=0){
		var citystate = document.getElementById("citystatezip_label");
		citystate.setAttribute('class', '');
		if(isIE){
			citystatezip_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.phone.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Phone Number required. ");
		var phn = document.getElementById("replace");
		phn.appendChild(newText);
		// red asterisk
		var phone = document.getElementById("phone_label");
		phone.setAttribute('class', 'redflag');
		if(isIE){
			phone_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.citystatezip.value.length!=0){
		var phone = document.getElementById("phone_label");
		phone.setAttribute('class', '');
		if(isIE){
			phone_label.style.cssText = "color: #888374;";
		}	
	}	
	if(document.quoterequest.fax.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Fax Number required. ");
		var fx = document.getElementById("replace");
		fx.appendChild(newText);
		// red asterisk
		var fax = document.getElementById("fax_label");
		fax.setAttribute('class', 'redflag');
		if(isIE){
			fax_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.citystatezip.value.length!=0){
		var fax = document.getElementById("fax_label");
		phone.setAttribute('class', '');
		if(isIE){
			fax_label.style.cssText = "color: #888374;";
		}	
	}	
	/* valid email? */
	if(email.indexOf("@") == -1 || email.indexOf(".") == -1){
		submitFlag = false;
		// email specific message			
		var newText = document.createTextNode
		("* Please enter a valid email address. ");
		var enote = document.getElementById("replace");
		enote.appendChild(newText);
		var em = document.getElementById("email_label");
		em.setAttribute('class', 'redflag');
		if(isIE){
			email_label.style.cssText = "color: #f00;";
		}		
	}	
	else if(email.indexOf("@") != -1 || email.indexOf(".") != -1){
		var em = document.getElementById("email_label");		
		em.setAttribute('class', '');
		if(isIE){
			email_label.style.cssText = "color: #9a9a9a;";
		}		
	}
	/* Job Information */
	if(document.quoterequest.quantity.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Quantity required. ");
		var qty = document.getElementById("replace");
		qty.appendChild(newText);
		// red asterisk
		var quant = document.getElementById("quantity_label");
		quant.setAttribute('class', 'redflag');
		if(isIE){
			quantity_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.quantity.value.length!=0){
		var quant = document.getElementById("quantity_label");
		quant.setAttribute('class', '');
		if(isIE){
			quantity_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.numberofpages.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* # of Pages required. ");
		var num = document.getElementById("replace");
		num.appendChild(newText);
		// red asterisk
		var number = document.getElementById("numberofpages_label");
		number.setAttribute('class', 'redflag');
		if(isIE){
			numberofpages_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.numberofpages.value.length!=0){
		var number = document.getElementById("numberofpages_label");
		number.setAttribute('class', '');
		if(isIE){
			numberofpages_label.style.cssText = "color: #888374;";
		}	
	}	
	if(document.quoterequest.flatsize.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Flat size required. ");
		var flt = document.getElementById("replace");
		flt.appendChild(newText);
		// red asterisk
		var flat = document.getElementById("flatsize_label");
		flat.setAttribute('class', 'redflag');
		if(isIE){
			flatsize_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.flatsize.value.length!=0){
		var flat = document.getElementById("flatsize_label");
		flat.setAttribute('class', '');
		if(isIE){
			flatsize_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.finishedsize.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Finish size required. ");
		var fin = document.getElementById("replace");
		fin.appendChild(newText);
		// red asterisk
		var finish = document.getElementById("finishedsize_label");
		finish.setAttribute('class', 'redflag');
		if(isIE){
			finishedsize_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.finishedsize.value.length!=0){	
		var finish = document.getElementById("finishedsize_label");
		finish.setAttribute('class', '');
		if(isIE){
			flatsize_label.style.cssText = "color: #888374;";
		}	
	}
	// bleed radio buttons
    if ( ( document.quoterequest.bleed[0].checked == false )
    && ( document.quoterequest.bleed[1].checked == false ) )
    {
        submitFlag = false;
		var newText = document.createTextNode
		("* Bleed selection required. ");
		var bld = document.getElementById("replace");
		bld.appendChild(newText);		
		// red asterisk
		var bleed = document.getElementById("bleed_label");
		bleed.setAttribute('class', 'redflag');
		if(isIE){
			bleed_label.style.cssText = "color: #f00;";
		}		
	}
    else if ( ( document.quoterequest.bleed[0].checked == true )
    || ( document.quoterequest.bleed[1].checked == true ) )
	{
		var bleed = document.getElementById("bleed_label");
		bleed.setAttribute('class', '');
		if(isIE){
			bleed_label.style.cssText = "color: #888374;";
		}	
	}
	/* Paper Information */
	if(document.quoterequest.bodystock.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Body Stock required. ");
		var bdy = document.getElementById("replace");
		bdy.appendChild(newText);
		// red asterisk
		var bstock = document.getElementById("bodystock_label");
		bstock.setAttribute('class', 'redflag');
		if(isIE){
			bodystock_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.bodystock.value.length!=0){
		var bstock = document.getElementById("bodystock_label");
		bstock.setAttribute('class', '');
		if(isIE){
			bodystock_label.style.cssText = "color: #888374;";
		}	
	}
	if((document.quoterequest.coverstock.value.length==0) && (document.quoterequest.elements['coverstockna'].checked == false)){
		submitFlag = false;
		var newText = document.createTextNode
		("* Cover Stock required, or choose 'Not Applicable'. ");
		var cvr = document.getElementById("replace");
		cvr.appendChild(newText);
		// red asterisk
		var cstock = document.getElementById("coverstock_label");
		cstock.setAttribute('class', 'redflag');
		if(isIE){
			coverstock_label.style.cssText = "color: #f00;";
		}		
	}
	else {
		var cstock = document.getElementById("coverstock_label");
		cstock.setAttribute('class', '');
		if(isIE){
			coverstock_label.style.cssText = "color: #888374;";
		}	
	}
	if((document.quoterequest.otherstock.value.length==0) && (document.quoterequest.elements['otherstockna'].checked == false)){
		submitFlag = false;
		var newText = document.createTextNode
		("* Other Stock required, or choose 'Not Applicable'. ");
		var otr = document.getElementById("replace");
		otr.appendChild(newText);
		// red asterisk
		var ostock = document.getElementById("otherstock_label");
		ostock.setAttribute('class', 'redflag');
		if(isIE){
			otherstock_label.style.cssText = "color: #f00;";
		}		
	}
	else {
		var ostock = document.getElementById("otherstock_label");
		ostock.setAttribute('class', '');
		if(isIE){
			otherstock_label.style.cssText = "color: #888374;";
		}	
	}
	
	/* Ink Information */
	if(document.quoterequest.bodyink.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Body Colors and % of Ink Coverage required. ");
		var bink = document.getElementById("replace");
		bink.appendChild(newText);
		// red asterisk
		var bodyink = document.getElementById("bodyink_label");
		bodyink.setAttribute('class', 'redflag');
		if(isIE){
			bodyink_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.bodyink.value.length!=0){
		var bodyink = document.getElementById("bodyink_label");
		bodyink.setAttribute('class', '');
		if(isIE){
			bodyink_label.style.cssText = "color: #888374;";
		}	
	}
	if((document.quoterequest.coverink.value.length==0) && (document.quoterequest.elements['coverinkna'].checked == false)){
		submitFlag = false;
		var newText = document.createTextNode
		("* Cover Colors and % of Ink Coverage required, or choose 'Not Applicable'. ");
		var cvrink = document.getElementById("replace");
		cvrink.appendChild(newText);
		// red asterisk
		var coverink = document.getElementById("coverink_label");
		coverink.setAttribute('class', 'redflag');
		if(isIE){
			coverink_label.style.cssText = "color: #f00;";
		}		
	}
	else {
		var ostock = document.getElementById("coverink_label");
		ostock.setAttribute('class', '');
		if(isIE){
			coverink_label.style.cssText = "color: #888374;";
		}	
	}	
	if((document.quoterequest.coverink.value.length==0) && (document.quoterequest.elements['coverinkna'].checked == false)){
		submitFlag = false;
		var newText = document.createTextNode
		("* Cover Colors and % of Ink Coverage required, or choose 'Not Applicable'. ");
		var cvrink = document.getElementById("replace");
		cvrink.appendChild(newText);
		// red asterisk
		var coverink = document.getElementById("coverink_label");
		coverink.setAttribute('class', 'redflag');
		if(isIE){
			coverink_label.style.cssText = "color: #f00;";
		}		
	}
	else {
		var ostock = document.getElementById("coverink_label");
		ostock.setAttribute('class', '');
		if(isIE){
			coverink_label.style.cssText = "color: #888374;";
		}	
	}	
	if((document.quoterequest.otherink.value.length==0) && (document.quoterequest.elements['otherinkna'].checked == false)){
		submitFlag = false;
		var newText = document.createTextNode
		("* Other Colors and % of Ink Coverage required, or choose 'Not Applicable'. ");
		var oink = document.getElementById("replace");
		oink.appendChild(newText);
		// red asterisk
		var otherink = document.getElementById("otherink_label");
		otherink.setAttribute('class', 'redflag');
		if(isIE){
			otherink_label.style.cssText = "color: #f00;";
		}		
	}
	else {
		var otherink = document.getElementById("otherink_label");
		otherink.setAttribute('class', '');
		if(isIE){
			otherink_label.style.cssText = "color: #888374;";
		}	
	}
	
	/* Bindery Information */
	if(document.quoterequest.bindery.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Bindery Instructions required. ");
		var bind = document.getElementById("replace");
		bind.appendChild(newText);
		// red asterisk
		var bindery = document.getElementById("bindery_label");
		bindery.setAttribute('class', 'redflag');
		if(isIE){
			bindery_label.style.cssText = "color: #f00;";
		}		
	}
	else if(document.quoterequest.bindery.value.length!=0){
		var bindery = document.getElementById("bindery_label");
		bindery.setAttribute('class', '');
		if(isIE){
			bindery_label.style.cssText = "color: #888374;";
		}	
	}
	
	/* Delivery Information */
	if(document.quoterequest.deliverycompanyname.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Delivery Company Name required. ");
		var delcomp = document.getElementById("replace");
		delcomp.appendChild(newText);
		// red asterisk		
		var dcompany = document.getElementById("deliverycompanyname_label");
		dcompany.setAttribute('class', 'redflag');
		if(isIE){
			deliverycompanyname_label.style.cssText = "color: #f00;";
		}
	}
	else if(document.quoterequest.contactname.value.length!=0){
		var dcompany = document.getElementById("deliverycompanyname_label");
		dcompany.setAttribute('class', '');
		if(isIE){
			deliverycompanyname_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.deliveryaddress1.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Delivery Address required. ");
		var deladd = document.getElementById("replace");
		deladd.appendChild(newText);
		// red asterisk		
		var daddress = document.getElementById("deliveryaddress1_label");
		daddress.setAttribute('class', 'redflag');
		if(isIE){
			deliveryaddress1_label.style.cssText = "color: #f00;";
		}
	}
	else if(document.quoterequest.contactname.value.length!=0){
		var daddress = document.getElementById("deliveryaddress1_label");
		daddress.setAttribute('class', '');
		if(isIE){
			deliveryaddress1_label.style.cssText = "color: #888374;";
		}	
	}	
	if(document.quoterequest.deliverycitystatezip.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Delivery City, State, Zip Required. ");
		var dcsz = document.getElementById("replace");
		dcsz.appendChild(newText);
		// red asterisk		
		var dcity = document.getElementById("deliverycitystatezip_label");
		dcity.setAttribute('class', 'redflag');
		if(isIE){
			deliverycitystatezip_label.style.cssText = "color: #f00;";
		}
	}
	else if(document.quoterequest.deliverycitystatezip.value.length!=0){
		var dcity = document.getElementById("deliverycitystatezip_label");
		dcity.setAttribute('class', '');
		if(isIE){
			deliverycitystatezip_label.style.cssText = "color: #888374;";
		}	
	}
	if(document.quoterequest.deliveryattn.value.length==0){
		submitFlag = false;
		var newText = document.createTextNode
		("* Delivery Attention required. ");
		var dattn = document.getElementById("replace");
		dattn.appendChild(newText);
		// red asterisk		
		var towho = document.getElementById("deliveryattn_label");
		towho.setAttribute('class', 'redflag');
		if(isIE){
			deliveryattn_label.style.cssText = "color: #f00;";
		}
	}
	else if(document.quoterequest.deliveryattn.value.length!=0){
		var towho = document.getElementById("deliveryattn_label");
		towho.setAttribute('class', '');
		if(isIE){
			deliveryattn_label.style.cssText = "color: #888374;";
		}	
	}	
	return submitFlag;
}