function NM_onload()
{
	document.getElementById("listSites").onchange = UpdateItems;
	document.getElementById("listRadius").onchange = UpdateItems;
	document.getElementById("listPostcode").onchange = UpdateItems;
	document.getElementById("listStaff").onchange = UpdateItems;
	document.getElementById("listShifts").onchange = UpdateItems;
	document.getElementById("listNight").onchange = UpdateItems;
	
	document.getElementById("btnClear").onclick = ClearQForm;
	document.getElementById("btnFormal").onclick = ShowFormalRequest;
	
	UpdateItems();
}

function ClearQForm()
{
	document.getElementById("formQuote").reset();
	UpdateItems();
}

function ShowFormalRequest()
{
	document.getElementById("divFormalQuote").style.display = "block";
	document.getElementById("fldCompany").focus();
}

function UpdateItems()
{
	var nSites = Number(document.getElementById("listSites").value);
	var sRadius = document.getElementById("listRadius").value;
	var nDistance = Number(document.getElementById("listPostcode").value);
	var nStaff = Number(document.getElementById("listStaff").value);
	var sShifts = document.getElementById("listShifts").value;
	var sNight = document.getElementById("listNight").value;
	
	document.getElementById("divRadius").style.visibility = "hidden";
	document.getElementById("divPostcode").style.visibility = "hidden";
	document.getElementById("divStaff").style.visibility = "hidden";
	document.getElementById("divShifts").style.visibility = "hidden";
	document.getElementById("divNight").style.visibility = "hidden";
	document.getElementById("divQuote").style.visibility = "hidden";
	document.getElementById("divOptions").style.visibility = "hidden";

	SetBG("listSites",nSites > 0);
	SetBG("listRadius",sRadius != "-");
	SetBG("listPostcode",nDistance != 0);
	SetBG("listStaff",nStaff > 0);
	SetBG("listShifts",sShifts != "-");
	SetBG("listNight",sNight != "-");
	
	var nStep = 1;
	
	if(nSites > 1)
		document.getElementById("divRadius").style.visibility = "visible";
		
	if((nSites == 1) || ((nSites > 1) && (sRadius != "-")))
	{
		document.getElementById("divPostcode").style.visibility = "visible";
		
		if(nDistance != 0)
		{
			nStep = 2;
			document.getElementById("divStaff").style.visibility = "visible";
			
			if(nStaff > 0)
			{
				nStep = 3;
				document.getElementById("divShifts").style.visibility = "visible";
				
				if(sShifts != "-")
				{
					document.getElementById("divNight").style.visibility = "visible";
					
					if(sNight != "-")
					{
						nStep = 4;
						CalcQuote(nSites,sRadius,nDistance,nStaff,sShifts,sNight);
					}
				}
			}
		}
	}

	for(iStep=1; iStep<=4; iStep++)
		document.getElementById("imgStep" + iStep).src = "images/q-step" + iStep + (nStep == iStep ? "-on" : "") + ".jpg";
}

function SetBG(sItem,bSet)
{
	document.getElementById(sItem).style.backgroundColor = bSet ? "#EBEBF1" : "#FFFF00";
}

function CalcQuote(nSites,sRadius,nDistance,nStaff,sShifts,sNight)
{
	var nTotal = 820;							// Starting rate
	
	nTotal += nTotal * ((nSites-1) * 0.08);		// 8% loading to starting rate for each site
	
	nTotal += nStaff * 4.00;
	nTotal *= (sShifts == "yes") ? 1.1 : 1;
	nTotal *= (sNight == "yes") ? 1.2 : 1;

	nTotal += Math.abs(nDistance) * 2 * 0.50;				// 50p per mile
	
	var sQuote = "Our estimate to carry out this assessment is <strong>&pound; " + nTotal.toFixed(0) + "</strong> + VAT";
	
	if(nDistance < 0)
		sQuote += "<br />Note: The price may increase if access to your location includes a ferry crossing.";
	
	if((nSites > 1) && (sRadius == "no"))
		sQuote += "<br />Note: As your sites are not located close together there may be an additional charge for travel costs.";
		
	if(nStaff == 500)
		sQuote += "<br />Note: Please contact NoiseMeters to discuss your requirements. The online quoting system cannot deal more than 500 staff.";

	document.getElementById("divQuote").innerHTML = sQuote;
	document.getElementById("divQuote").style.visibility = "visible";
	
	i = document.getElementById("listStaff").selectedIndex;
	sStaffRange = document.getElementById("listStaff").options[i].text;
	document.getElementById("fldStaffRange").value = sStaffRange;

	i = document.getElementById("listPostcode").selectedIndex;
	sPostTown = document.getElementById("listPostcode").options[i].text;
	document.getElementById("fldPostTown").value = sPostTown;
	
	document.getElementById("fldQuote").value = nTotal.toFixed(0);

	document.getElementById("divOptions").style.visibility = "visible";
}

function MousePosition(e) {
    e = e || window.event;
    var cursor = {x:0, y:0};
    if (e.pageX || e.pageY) {
        cursor.x = e.pageX;
        cursor.y = e.pageY;
    } 
    else {
        var de = document.documentElement;
        var b = document.body;
        cursor.x = e.clientX + 
            (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
        cursor.y = e.clientY + 
            (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
    }
    return cursor;
}

function ShowHelp(e,sHelp)
{
	var div = document.getElementById("divHelp")
	
	div.style.left = MousePosition(e).x - 100;
	div.style.top = MousePosition(e).y - 50;
	
	div.style.display = "block";
	
	var sHelpTxt = "";
	
	switch(sHelp)
	{
		case "radius"   : sHelpTxt = "If all your sites are within 30 miles of each other then please answer <b>YES</b>. For greater differences there may be an extra charge for travel, which will be included on a Formal Quotation."; break;
		case "sites"    : sHelpTxt = "The number of different geographical locations (not different buildings on the same site) at which you need a noise assessment."; break;
		case "postcode" : sHelpTxt = "Select first two letters of your postcode for your site. If you have multiple sites then select the postcode your most central site."; break;
		case "staff"    : sHelpTxt = "The number of people who work in a potentially noisy environment. If you have a number of people doing the same tasks or working in the same acoustic environment then only one needs assessing."; break;
		case "shifts"   : sHelpTxt = "Answer <b>YES</b> if you have shifts with different work patterns that result in different noise levels. In this case extra measurements will be made for the different shifts."; break;
		case "nights"   : sHelpTxt = "Answer <b>YES</b> if you have people working night shifts, but only if the noise levels are likely to be different to those during the day shifts."; break;
	}
	
	document.getElementById("divHelpTxt").innerHTML = sHelpTxt;
}

function HideHelp()
{
	document.getElementById("divHelp").style.display = "none";
}
