function checkForm(){
var d = document.forms['frm'];
var fld1, fld2, fld3, fld4, fld5, fld6, fld7;
var i, j;
var strSep;
var blnFlag = false;
var intCountSelected = 0;
var intMaxColumns = 0;


	if(isEmpty(d.Company.value)) return alertF("Please enter your company name.", d.Company);
	if(isEmpty(d.Contact.value)) return alertF("Please enter contact name.", d.Contact);
	if(isEmpty(d.Phone.value)) return alertF("Please enter phone.", d.Phone);
	if(!isEmail(d.Email.value)) return alertF("Please enter email address.", d.Email);


	for(i=0;i<6;i++){
		if(d.Separator[i].checked)
			strSep = d.Separator[i].value
	}
	if(strSep=='O')strSep = d.Other.value;
	if(strSep=='9')strSep = '\t';
	
	
	if(isEmpty(d.ContactName.value))return alertF("Please enter contact name.", d.ContactName);
	
	for(i=1;i<=7;i++)
		eval("fld" + i + "=d.Field" + i + ".options[d.Field" + i + ".selectedIndex];");

	for(i=1;i<=7;i++){
		if(eval("fld" + i + ".value")!="none")intCountSelected++;
		for(j=1;j<=7;j++){
			if(i!=j){
				if((eval("fld" + i + ".value")==eval("fld" + j + ".value"))&&(eval("fld" + i + ".value")!="none"))return alertF("You have selected a column more than once in Cut & Paste form", eval("fld" + j));
			}
		}
	}

	for(i=1;i<16;i++){
		if( (!isEmpty(eval("d.Number" + i + ".value")))  ||  (isEmpty(eval("d.Prefix" + i + ".value"))) ) 		
				blnFlag = true;
			
		if(	(!isEmpty(eval("d.Mfg" + i + ".value")))||
			(!isEmpty(eval("d.Desc" + i + ".value")))||
			(!isEmpty(eval("d.Qty" + i + ".value")))||
			(!isEmpty(eval("d.DC" + i + ".value")))||
			(!isEmpty(eval("d.Price" + i + ".value")))){
			if( (isEmpty(eval("d.Number" + i + ".value")))  &&  (isEmpty(eval("d.Prefix" + i + ".value"))) ) 
				return alertF("Please enter part prefix or name.", eval("d.Prefix" + i));
				blnFlag = true;
		}
		
		if(!isEmpty(eval("d.Qty" + i + ".value"))){
			if(!isInteger(eval("d.Qty" + i + ".value")))return alertF("Please enter quantity.", eval("d.Qty" + i));
		}
		if(!isEmpty(eval("d.Price" + i + ".value"))){
			if(!isMoney(eval("d.Price" + i + ".value")))return alertF("Please enter price.", eval("d.Price" + i));
		}
	}


	var strParts = d.Parts.value;
	var arrLines = strParts.split('\r\n');
	var arrInLines;
	
	var QtyPos, PricePos;
		for(i=1;i<8;i++){
			if(eval("d.Field" + i + ".options[d.Field" + i + ".selectedIndex].value")=="Q")QtyPos = parseInt(i - 1);
			if(eval("d.Field" + i + ".options[d.Field" + i + ".selectedIndex].value")=="R")PricePos = parseInt(i - 1);
		}
		for(i=0;i<arrLines.length;i++){
			arrInLines = arrLines[i].split(strSep);
			if(intMaxColumns < arrInLines.length)intMaxColumns = arrInLines.length;
			if(strParts.length>0)blnFlag = true;
			if(arrInLines.length>6){
				if(!isEmpty(arrInLines[QtyPos])){
					if(!isInteger(arrInLines[QtyPos]))return alertF("Please enter quantity. at row: " + parseInt(i + 1) + ", column: " + parseInt(QtyPos + 1), d.Parts);
				}
				if(!isEmpty(arrInLines[PricePos])){
					if(!isMoney(arrInLines[PricePos]))return alertF("Please enter price. at row " + parseInt(i + 1) + ", column: " + parseInt(PricePos + 1), d.Parts);
				}
			}
		}


	if(!blnFlag)return alertF("Enter offers to send",d.Parts)

	if((intMaxColumns>intCountSelected)&&(!strParts.length==0)){
		alert("The number of columns is different than the one you specified");
		return false;
	}


	var arr = new Array("P","N","M","D","Q","C","R");
	for(var i=0;i<7;i++){
	blnFlag = false;
		for(var j=0;j<7;j++){
			if(arr[i]==eval("fld" + (j+1) + ".value")){
				blnFlag = true;
				break;
			}
		}
		if(!blnFlag){
		for(var j=0;j<7;j++){
			if(eval("fld" + (j+1) + ".value")=='none'){
				eval("fld" + (j+1) + ".value='" + arr[i] + "'");
				break;
			}
		}
		}
	}


	return true;
}
