var info="Upon completion of the shipping process an invoice will be generated. \nPlease review your freight charge selections.  \nCheck the accuracy of the information entered so we can ensure proper billing/Invoice. \nThis form is for data entry only. Please do not print."

function addBol()
{
	return overlib('Use this form to create a Bill of Lading. <BR><BR>Underlined terms can give you Quick Help by either clicking on or moving your cursor over the term. ', CENTER, ABOVE, FGCOLOR,'#A1101B')
}

function editBol()
{
	return overlib('Use this form to 1)edit this existing Bill of Lading 2)create a Template or 4)edit the BOL and create a Template. <BR><BR>Underlined terms can give you Quick Help by either clicking on or moving your cursor over the term. ', CENTER, ABOVE, FGCOLOR,'#A1101B')
}

function addTemplate()
{
	return overlib('Use this form to create a template.  <BR><BR>Once completed you will be able to create multiple Bill of Ladings from this template. <BR><BR>Underlined terms can give you Quick Help by either clicking on or moving your cursor over the term. ', CENTER, ABOVE, FGCOLOR,'#A1101B')
}

function editTemplate()
{
	return overlib('Use this form to edit your Template or to create a Bill of Laden. <BR><BR>Underlined terms can give you Quick Help by either clicking on or moving your cursor over the term. ', CENTER, ABOVE, FGCOLOR,'#A1101B')
}

function viewBol()
{
	return overlib('This page shows the information of a Bill of Laden which has been finalized or shipped. <BR><BR>Underlined terms can give you Quick Help by either clicking on or moving your cursor over the term. ', CENTER, ABOVE, FGCOLOR,'#A1101B')
}

function confirmStandardLTLGuarantee()
{
	var del = document.getElementById("deliverByDate").value;
	if(document.form.serviceType.checked && del != ""){
		standardGuarantee = confirm("A Standard LTL Guarantee Shipping Option cannot be used in \nconjunction with a Must Deliver On or Before date. \nPlease remove the Must Deliver On or Before date \nin order to select this option.");
			
	}
	var standardGuarantee;
	if(document.form.serviceType.checked){
		standardGuarantee = confirm("You have selected Standard LTL Guarantee Shipping Option! \nPlease review the terms above!");
		if(standardGuarantee != true)
			document.form.serviceType.checked = false;
	}else
	{
		standardGuarantee = confirm("You have unselected Standard LTL Guarantee Shipping Option!");
		if(standardGuarantee != true)
			document.form.serviceType.checked = true;
	}
}


function autoPopulate1(index_number){

if(index_number==0){
	
	document.form.CN.value="";
	document.form.CA1.value="";
	document.form.CA2.value="";
	document.form.consigneeCountry.value="";
	document.form.CC.value="";
	document.form.CS.value="";
	document.form.CZ.value="";
	document.form.CP.value=""; 

	}else{
		
	var number = index_number-1;
	
	if(document.form.abFlag.value==""){
		var companyName = document.form.abCompany[number].value;
		var address1 = document.form.abAddress1[number].value;
		var address2 = document.form.abAddress2[number].value;		
		var country=document.form.abCountry[number].value;
		var city =  document.form.abCity[number].value;
		var state = document.form.abState[number].value;
		var zip = document.form.abZip[number].value;
		var phone = document.form.abPhone[number].value;  
		}else{
			var companyName = document.form.abCompany.value;
			var address1 = document.form.abAddress1.value;
			var address2 = document.form.abAddress2.value;
			var country = document.form.abCountry.value;
			var city =  document.form.abCity.value;
			var state = document.form.abState.value;
			var zip = document.form.abZip.value;
			var phone = document.form.abPhone.value;  
			}

	document.form.CN.value=companyName;
	document.form.CA1.value=address1;
	document.form.CA2.value=address2;
	document.form.consigneeCountry.value=country;
	document.form.CC.value=city;
	document.form.CS.value=state;
	document.form.CZ.value=zip;
	document.form.CP.value=phone;  
	}
	document.getElementById("selectCityCC").style.display = 'none';
	document.getElementById("displayCityCC").style.display = '';
	document.getElementById("consigneePhone").maxLength=10;
    document.getElementById("conPhone").style.display ='none';
    if(zip!=null)
	{
	validateAddress(city, state, zip, country, "CZ");
	}
}

function autoPopulate2(index_number){
if(index_number==0){
	
	document.form.SN.value="";
	document.form.SA1.value="";
	document.form.SA2.value="";
	document.form.SC.value="";
	document.form.SS.value="";
	document.form.SZ.value="";
	document.form.SP.value="";

	}else{
		
	var number = index_number-1;
	
	if(document.form.abFlag.value==""){
		var companyName = document.form.abCompany[number].value;
		var address1 = document.form.abAddress1[number].value;
		var address2 = document.form.abAddress2[number].value;
		var country="US";
		var city =  document.form.abCity[number].value;
		var state = document.form.abState[number].value;
		var zip = document.form.abZip[number].value;
		var phone = document.form.abPhone[number].value; 
		}else{
			var companyName = document.form.abCompany.value;
			var address1 = document.form.abAddress1.value;
			var address2 = document.form.abAddress2.value;
			var country="US";
			var city =  document.form.abCity.value;
			var state = document.form.abState.value;
			var zip = document.form.abZip.value;
			var phone = document.form.abPhone.value;  	
			}

	document.form.SN.value=companyName;
	document.form.SA1.value=address1;
	document.form.SA2.value=address2;
	document.form.SC.value=city;
	document.form.SS.value=state;
	document.form.SZ.value=zip;
	document.form.SP.value=phone;  
	}
	document.getElementById("selectCitySC").style.display = 'none';
	document.getElementById("displayCitySC").style.display = '';
	if(zip!=null)
	{
	validateAddress(city, state, zip, country, "SZ");
	}
}

function autoPopulate3(index_number){
if(index_number==0){
	
	document.form.BN.value="";
	document.form.BA1.value="";
	document.form.BA2.value="";
	document.form.BC.value="";
	document.form.BS.value="";
	document.form.BZ.value="";
	document.form.BP.value=""; 

	}else{
		
	var number = index_number-1;
	
	if(document.form.abFlag.value==""){
		var companyName = document.form.abCompany[number].value;
		var address1 = document.form.abAddress1[number].value;
		var address2 = document.form.abAddress2[number].value;
		var country="US";
		var city =  document.form.abCity[number].value;
		var state = document.form.abState[number].value;
		var zip = document.form.abZip[number].value;
		var phone = document.form.abPhone[number].value;
		}else{
			var companyName = document.form.abCompany.value;
			var address1 = document.form.abAddress1.value;
			var address2 = document.form.abAddress2.value;
			var country = "US";
			var city =  document.form.abCity.value;
			var state = document.form.abState.value;
			var zip = document.form.abZip.value;
			var phone = document.form.abPhone.value;
			}

	document.form.BN.value=companyName;
	document.form.BA1.value=address1;
	document.form.BA2.value=address2;
	
	document.form.BC.value=city;
	document.form.BS.value=state;
	document.form.BZ.value=zip;
	document.form.BP.value=phone; 
	}
	document.getElementById("selectCityBC").style.display = 'none';
	document.getElementById("displayCityBC").style.display = '';
	document.getElementById("billPhone").maxLength=10;
	document.getElementById("billtoPhone").style.display ='none';
	if(zip!=null)
	{
	validateAddress(city, state, zip, country, "BZ");
	}
}


function autoPopulate4(index_number){
if(index_number==0){
	
	document.form.RN.value="";
	document.form.RA1.value="";
	document.form.RA2.value="";
	document.form.RC.value="";
	document.form.RS.value="";
	document.form.RZ.value=""; 
	
	}else{
		
	var number = index_number-1;
	
	if(document.form.abFlag.value==""){
		var companyName = document.form.abCompany[number].value;
		var address1 = document.form.abAddress1[number].value;
		var address2 = document.form.abAddress2[number].value;
		var country="US";
		var city =  document.form.abCity[number].value;
		var state = document.form.abState[number].value;
		var zip = document.form.abZip[number].value;		
		}else{
			var companyName = document.form.abCompany.value;
			var address1 = document.form.abAddress1.value;
			var address2 = document.form.abAddress2.value;
			var country = "US";
			var city =  document.form.abCity.value;
			var state = document.form.abState.value;
			var zip = document.form.abZip.value;			
			}

	document.form.RN.value=companyName;
	document.form.RA1.value=address1;
	document.form.RA2.value=address2;
	document.form.RC.value=city;
	document.form.RS.value=state;
	document.form.RZ.value=zip;	  
	}
	document.getElementById("selectCityRC").style.display = 'none';
	document.getElementById("displayCityRC").style.display = '';
	if(zip!=null)
	{
	validateAddress(city, state, zip, country, "RZ");
	}
}

function createRows() {
	document.form.add5Items.value="Y";
	document.form.action="/servlet/ShipBolServlet";  
	document.form.method="POST";
	document.form.submit();
}

function checkFinalizeOption(what)
{
	if(what == 'F') {
		document.form.stupid.value = 'finalize'
	}else{
		document.form.stupid.value = 'n'
	}
}

var submitcount=0;

function isReadyForBOLCreation(saveType) {	
	var result; 
	
	if(submitcount == 0)
	{	
		submitcount++		
		if(document.form.stupid.value == 'finalize')
		{
			result = confirm(info)
		}
		else if(document.form.stupid.value == "")
		{		
			if(saveType == 'finalize')		
				result = confirm(info)					
		}
		
		if(result == false)
		{
			submitcount = 0
			return false
		}
		return true;
	}
	else
	{
		alert("This form has already been submitted.  Thanks!");
		return false;
	}
}


var countHMFlags = 0;

function init(){
	var i = 0;
	var elemName = "itemRow_";
	var elmID;
	
	for(i=0; i<15; i++){
		var hmElement = document.getElementById("lhazflag"+i);
		if(hmElement && hmElement.checked){
			countHMFlags++;
			document.getElementById("hazinfo"+i).style.display = '';
			document.getElementById("uniqueUN"+i).style.display = '';
			document.getElementById("hazdetail"+i).style.display = '';
			var nosElement = document.getElementsByName("nosDesc");
			if(nosElement){
				var nosValue = nosElement[i].value;
				if(nosValue != ''){
					document.getElementById("nosInput"+i).style.display = '';
				}
			}
		}
		
		
	}
	hideItems();
}

function isNumeric(field) {
	var valid = "0123456789"
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}
	if (ok == "no") {
		alert("Invalid entry! Enter only numbers");
		return false;
	}
	if(field.value.length != 10){
		alert("Phone number needs to be 10 digits (8005551234)");
		return false;
	}
	return true;
}

function getHide(index,element ){
			
		var emergencyElem = document.getElementsByName('emergencyNo');
		var emergencyElem1 = document.getElementsByName('emergencyName');
		var lunits = document.getElementsByName("lunits");
		var lutypeElem = document.getElementById("lutype");
		var lnmfc = document.getElementsByName("lnmfc");
		var lnmfcsub = document.getElementsByName("lnmfcsub");	
		var lclassElem = document.getElementById("lclass");
		var lwgt = document.getElementsByName("lwgt");
		var lhazflag = document.getElementsByName("lhazflag");
		var unNum = document.getElementsByName("unNum");
		var unNum1 = document.getElementsByName("unNum1");
		var pkgClass = document.getElementsByName("pkgClass");
		var hazClass = document.getElementsByName("hazClass");
		var hazDesc = document.getElementsByName("hazDesc");
		var nosDesc = document.getElementsByName("nosDesc");
		lunits[index].value = '';
		lutypeElem[index].selectedIndex = 0;		
		lnmfc[index].value = '';
		lnmfcsub[index].value = '';	
		lclassElem[index].selectedIndex = 0;		
		lwgt[index].value = '';
		unNum[index].value = '';
		unNum1[index].value = '';
		pkgClass[index].value = '';
		hazClass[index].value = '';
		hazDesc[index].value = '';
		nosDesc[index].value = '';		
		document.getElementById("hazinfo"+index).style.display = 'none';
		document.getElementById("uniqueUN"+index).style.display = 'none';
		document.getElementById("multipleUN"+index).style.display = 'none';
		document.getElementById("nosInput"+index).style.display = 'none';
		document.getElementById("hazdetail"+index).style.display = 'none';
		lhazflag[index].checked = false;
		
		countHMFlags--;
		if(countHMFlags<=0){

			countHMFlags = 0 ;
			emergencyElem[0].value = "";
			emergencyElem1[0].value = "";
		}
		var descriptionSelectElem = document.getElementById("descriptionSelect["+index+"]");
		if (descriptionSelectElem != null) {
			descriptionSelectElem.disabled = false;
		}
		var descriptionElement = document.getElementById("ldesc["+index+"]");
		descriptionElement.value="";
		descriptionElement.readOnly = false;	
	}


function cleanup(index,countHMFlags,element,text)
{
	var emergencyElem = document.getElementsByName('emergencyNo');
	var emergencyElem1 = document.getElementsByName('emergencyName');
	var unNum = document.getElementsByName("unNum");
	var pkgClass = document.getElementsByName("pkgClass");
	var hazClass = document.getElementsByName("hazClass");
	var hazDesc = document.getElementsByName("hazDesc");

	countHMFlags--;
	if(countHMFlags < 0)
		countHMFlags = 0;
	alert("Hazardous material box will be unchecked. To keep it checked you have to enter an Emergency Contact "+text);
	element.checked = false;
	
	unNum[index].value = '';
	pkgClass[index].value = '';
	hazClass[index].value = '';
	hazDesc[index].value = '';
	document.getElementById("hazinfo"+index).style.display = 'none';
	document.getElementById("uniqueUN"+index).style.display = 'none';
	document.getElementById("hazdetail"+index).style.display = 'none';
	emergencyElem[0].value = "";
	emergencyElem1[0].value = " ";
	element.value = "";
}

function isName(field) {
	var valid = "abcdefghijklmnopqrstuvwxyz-/ABCDEFGHIJKLMNOPQRSTUVWXYZ "
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1")
		 ok = "no";
	}
	if (ok == "no") {
		alert("Name cannot contain numbers or special characters");
		return false;
	}
	if(field.value.length < 5 || field.value.length >30  ){
		alert("Name needs to be at least 5 and less than 30 characters");
		return false;
	}
	return true;
}

function showup(index,element)
{	
	var emergencyElem = document.getElementsByName('emergencyNo');
	var emergencyElem1 = document.getElementsByName('emergencyName');
	document.getElementById("hazinfo"+index).style.display = '';
	document.getElementById("uniqueUN"+index).style.display = '';
	document.getElementById("hazdetail"+index).style.display = '';
	var unNum = document.getElementsByName("unNum");
	unNum[index].value = "";
	document.getElementById("lunits["+index+"]").focus();
	var confirmation = true;
	if (!isPageLoading)
	{
		confirmation = confirm("Description will be disabled for Hazardous Materials.\nDo you wish to continue?");
	}
	
	if (confirmation) 
	{
		var descriptionSelectElem = document.getElementById("descriptionSelect["+index+"]");
		if (descriptionSelectElem != null) 
		{
			descriptionSelectElem.disabled = true;
		}
		var descriptionElement = document.getElementById("ldesc["+index+"]");
		descriptionElement.value=" ";
		descriptionElement.readOnly = true;
		
	}
	else 
	{
		emergencyElem[0].value = "";
		emergencyElem1[0].value = " ";
		element.checked = false;
		getContact2(element, index);
	}
}

var isdescPopupShowed = false;
var alreadyEnteredFlag = false;
function getContact2(element, index, bypassContactInfo)
{
	
	var emergencyElem = document.getElementsByName('emergencyNo');
	var emergencyElem1 = document.getElementsByName('emergencyName');
	var confirmation = true;
	
	if(emergencyElem[0].value!="0" && emergencyElem[0]!=null && emergencyElem[0].value!="")   
	{
		alreadyEnteredFlag = true;		
	}
	
	if (bypassContactInfo == null) bypassContactInfo = false;
	
	if(element.checked)
	{
		var unNum = document.getElementsByName("unNum");
		var pkgClass = document.getElementsByName("pkgClass");
		var hazClass = document.getElementsByName("hazClass");
		var hazDesc = document.getElementsByName("hazDesc");
		
		if(!alreadyEnteredFlag && !bypassContactInfo)
		{
			emergencyElem[0].value = prompt(" Please enter a 10-digit Emergency Contact Phone Number (Do Not Include 1 or Dashes) ","");
			if(emergencyElem[0].value==null || emergencyElem[0].value=='null' || emergencyElem[0].value.length == 0)
			{
				cleanup(index,countHMFlags,element,'Phone Number');
			}
			else
			{
				if(isNumeric(emergencyElem[0]))
				{
					getConName(element, index);
					
				}
				else
				{
					emergencyElem[0].value = "";
					getContact2(element, index);
				}
			}
			alreadyEnteredFlag = true;
		}
		else
		{
			if (bypassContactInfo)
			{
				if(!isdescPopupShowed  && !isPageLoading){
					confirmation = confirm("Description will be disabled for Hazardous Materials.\nDo you wish to continue?");
					isdescPopupShowed = true;
				}
				
				if (!confirmation)
				{	
					emergencyElem[0].value = "";
					emergencyElem1[0].value = " ";
					element.checked = false;
					var unNum = document.getElementsByName("unNum");
					var unNum1 = document.getElementsByName("unNum1");
					var pkgClass = document.getElementsByName("pkgClass");
					var hazClass = document.getElementsByName("hazClass");
					var hazDesc = document.getElementsByName("hazDesc");
					var nosDesc = document.getElementsByName("nosDesc");
					unNum[index].value = '';
					unNum1[index].value = '';
					pkgClass[index].value = '';
					hazClass[index].value = '';
					hazDesc[index].value = '';
					nosDesc[index].value = '';
					$("hazinfo"+index).hide();
					$("uniqueUN"+index).hide();
					$("multipleUN"+index).hide();
					$("nosInput"+index).hide();
					$("hazdetail"+index).hide();
					return false;
				} 
			}

			$("hazinfo"+index).style.display = '';
			$("uniqueUN"+index).style.display = '';
			$("hazdetail"+index).style.display = '';
			if (hazDesc[index].value == null || hazDesc[index].value == '') 
			{
			    unNum[index].value = "";
			}

		    var descriptionSelectElem = document.getElementById("descriptionSelect["+index+"]");
		    if (descriptionSelectElem != null) 
		    {
		        descriptionSelectElem.disabled = true;
		    }
		    
		    var descriptionElement = document.getElementById("ldesc["+index+"]");
		    descriptionElement.value=" ";
		    descriptionElement.readOnly = true;

			$("lunits["+index+"]").focus();
			countHMFlags++;
			
			}
				
	}
	else
	{
		var unNum = document.getElementsByName("unNum");
		var unNum1 = document.getElementsByName("unNum1");
		var pkgClass = document.getElementsByName("pkgClass");
		var hazClass = document.getElementsByName("hazClass");
		var hazDesc = document.getElementsByName("hazDesc");
		var nosDesc = document.getElementsByName("nosDesc");
		unNum[index].value = '';
		unNum1[index].value = '';
		pkgClass[index].value = '';
		hazClass[index].value = '';
		hazDesc[index].value = '';
		nosDesc[index].value = '';
		$("hazinfo"+index).hide();
		$("uniqueUN"+index).hide();
		$("multipleUN"+index).hide();
		$("nosInput"+index).hide();
		$("hazdetail"+index).hide();
		
		
		countHMFlags--;
		if(countHMFlags<=0)
		{
			countHMFlags = 0 ;
			emergencyElem[0].value = "";
			emergencyElem1[0].value = "";
		}
		
		var descriptionSelectElem = document.getElementById("descriptionSelect["+index+"]");
		if (descriptionSelectElem != null) 
		{
			descriptionSelectElem.disabled = false;
		}
		
		var descriptionElement = document.getElementById("ldesc["+index+"]");
		descriptionElement.value="";
		descriptionElement.readOnly = false;
	}
}

function getContactPublic(element){
	var alreadyEntered = false;
	var emergencyElem = document.getElementsByName('emergencyNo');
	var emergencyElem1 = document.getElementsByName('emergencyName');
	if(emergencyElem[0].value!="0" && emergencyElem[0]!=null && emergencyElem[0].value!=""){
		alreadyEntered = true;		
	}
	if(element.checked){
		if(!alreadyEntered){
			emergencyElem[0].value = prompt(" Please enter an Emergency Contact Phone Number ","");
			emergencyElem1[0].value = prompt(" Please enter Emergency Contact name(Do not include numbers or any special characters)","");
			
			if(emergencyElem[0].value==null || emergencyElem[0].value=='null' || emergencyElem[0].value.length == 0){
				countHMFlags--;
				if(countHMFlags < 0)
					countHMFlags = 0;
				element.checked = false;
				emergencyElem[0].value = "";
				alert("Hazardous material boxes will be unchecked. To keep it checked you have to enter an Emergency Contact Phone Number.");
			}
			else if(emergencyElem1[0].value==null || emergencyElem1[0].value=='null' || emergencyElem1[0].value.length == 0){
				countHMFlags--;
				if(countHMFlags < 0)
					countHMFlags = 0;
				element.checked = false;
				emergencyElem[0].value = "";
				emergencyElem1[0].value = "";
				alert("Hazardous material boxes will be unchecked. To keep it checked you have to enter an Emergency Contact Emergency Name.");
			}
			else
			{
				if(isNumeric(emergencyElem[0])){
					countHMFlags++;
				}
				else{
					emergencyElem[0].value = "";
					getContactPublic(element);
				}
			}
		}
		else{
			countHMFlags++;
		}		
	}
	else{
		countHMFlags--;
		if(countHMFlags<=0){
			countHMFlags = 0 ;
			emergencyElem[0].value = "";	
		}
	}
}


function getContact(element){
	var hmPhNo = document.getElementsByName(element);
	var oldEmerNo = "";
	if(hmPhNo[0]!=null){
		oldEmerNo = hmPhNo[0].value;
		hmPhNo[0].value = prompt(" Please enter an Emergency Contact Phone Number ","");
		if(hmPhNo[0].value == null || hmPhNo[0].value =='' || hmPhNo[0].value == 'null')
		{
			hmPhNo[0].value = oldEmerNo;
		}
		else if(hmPhNo[0].value.length == 0 || hmPhNo[0].value == "0"){			
			hmPhNo[0].value = "";
			alert("Hazardous material boxes will be unchecked. To keep it checked you have to enter an Emergency Contact Phone Number");
			var i = 0;
			for(i=0; i<15; i++){
				var hmElement = document.getElementById("lhazflagid"+i);
				if(hmElement){
					hmElement.checked = false;
				}
			}
		}
		else if(!isNumeric(hmPhNo[0])){
			getContact(element);
		}
	}
	if(!isNumeric(hmPhNo[0])){
			getContact(element);
	}
}


function getContactName(element){
	var hmContactName = document.getElementsByName(element);
	var oldEmerName = "";
	if(hmContactName[0]!=null){
		oldEmerName = hmContactName[0].value;
		hmContactName[0].value = prompt(" Please enter an Emergency Contact Name ","");
		if(hmContactName[0].value == null || hmContactName[0].value =='' || hmContactName[0].value == 'null')
		{
			hmContactName[0].value = oldEmerName;
		}
		else if(hmContactName[0].value.length == 0 || hmContactName[0].value == " "){			
			hmContactName[0].value = " ";
			alert("Hazardous material boxes will be unchecked. To keep it checked you have to enter an Emergency Contact Name");
			var i = 0;
			for(i=0; i<15; i++){
				var hmElement = document.getElementById("lhazflagid"+i);
				if(hmElement){
					hmElement.checked = false;
				}
			}
		}
		else if(!isName(hmContactName[0])){
			getContactName(element);
		}
	}
	if(!isName(hmContactName[0])){
			getContactName(element);
	}
}


function getConName(element, index){
					
					countHMFlags++;
					var emergencyElem1 = document.getElementsByName('emergencyName');
					emergencyElem1[0].value = prompt(" Please enter Emergency Contact name(Do not include numbers or any special characters)","");
					if(emergencyElem1[0].value==null || emergencyElem1[0].value=='null' || emergencyElem1[0].value.length == 0)
					{
						cleanup(index,countHMFlags,element,'Name');
					}
					else
					{
						if(isName(emergencyElem1[0]))
						{   
							showup(index,element);					
						}
						else
						{
							emergencyElem1[0].value = " ";
							getConName(element, index);
						}
					}
		}	
