var data = new Array();

data['dfs'] = new Array();
data['dfs']['edu'] = {10 : 22.48, 25 : 19.10};
data['dfs']['lib'] = {10 : 47.81, 25 : 40.64};
data['dfs']['cor'] = {10 : 47.81, 25 : 40.64};
data['dfe'] = new Array();
data['dfe']['edu'] = {10 : 35.08, 50 : 29.83,100 : 23.85,500 : 17.24,1000 : 14.65};
data['dfe']['lib'] = {10 : 82.54, 50 : 70.16,100 : 56.13,500 : 40.55,1000 : 34.48};
data['dfe']['cor'] = {10 : 82.54, 50 : 70.16,100 : 56.13,500 : 40.55,1000 : 34.48};
data['dfm'] = new Array();
data['dfm']['edu'] = {10 : 35.08, 50 : 29.83,100 : 23.85,500 : 17.24,1000 : 14.65};
data['dfm']['lib'] = {10 : 54.86, 50 : 53.30,100 : 51.85,500 : 40.55,1000 : 34.48};
data['dfm']['cor'] = {10 : 54.86, 50 : 53.30,100 : 51.85,500 : 40.55,1000 : 34.48};
data['dfl'] = new Array();
data['dfl']['edu'] = {10 : 22.48, 25 : 19.10,100 : 15.28,250 : 12.99,500 : 11.04,1000 : 9.39,2000 : 7.98, 5000: 6.78};
data['dfl']['lib'] = {10 : 29.65, 25 : 25.50,100 : 20.16,250 : 17.14,500 : 14.56,1000 : 12.38,2000 : 10.53, 5000: 8.9};
data['dfl']['cor'] = {10 : 47.81, 25 : 40.64,100 : 32.51,250 : 27.64,500 : 23.49,1000 : 19.96,2000 : 16.98, 5000: 14.4};


var maintenanceArr = new Array();
//Maintenance costs as a decimal
maintenanceArr['1'] = .2;
maintenanceArr['2'] = .35;
maintenanceArr['3'] = .5;


function update()
{
	var prod = document.getElementById("productSel");
	var cust = document.getElementById("customerSel");
	
	if(prod.selectedIndex > -1 && cust.selectedIndex > -1)
	{
		var sProd = prod.options[prod.selectedIndex].value;
		var sCust = cust.options[cust.selectedIndex].value;
		var units = document.getElementById("unitField").value;
		if(!isInteger(units) || units < 10)
		{
			document.getElementById("unitField").value = 10;
			units = 10;
		}
		
		// Get unit price
		if(units > 0)
		{
			var price = 0;
			var i = units;
			while(price <= 0 && i >= 0)
			{
				 if(typeof data[sProd][sCust][i] != "undefined")
				 {
				 	price = data[sProd][sCust][i];
				 }
				 i--;
			}
		}
		
		var prodTotal = price * units;
		
		// Get maintenance
		var mainTotal = 0.00;
		var main = document.getElementById("mainSel");
		if(main.selectedIndex > -1)
		{
			mainTotal = prodTotal * maintenanceArr[main.options[main.selectedIndex].value];
		}
		
	
		
		var subTotal = prodTotal + mainTotal;
		
		// Get GST
		var gst = 0.00;
		if(document.getElementById("gstCheck").checked)
		{
			gst = subTotal * .1;
		}
		
		var grandTotal = subTotal + gst;
		
		document.getElementById("priceField").innerHTML = formatCurrency(price);
		document.getElementById("prodField").innerHTML = formatCurrency(prodTotal);
		document.getElementById("mainField").innerHTML = formatCurrency(mainTotal);
		document.getElementById("subField").innerHTML = formatCurrency(subTotal);
		document.getElementById("gstField").innerHTML = formatCurrency(gst);
		document.getElementById("grandField").innerHTML = formatCurrency(grandTotal);
	}
	
	setDate();
}


function produceOrder()
{
	document.order.submit();
}

function loadOrder()
{
	var sProd = document.getElementById("productSel").value;
	var sCust = document.getElementById("customerSel").value;
	var units = document.getElementById("unitField").value;
	
	if(sProd != '' && sCust != '' && units >= 10)
	{
		// Get unit price
		var price = 0;
		var i = units;
		while(price <= 0 && i >= 0)
		{
			 if(typeof data[sProd][sCust][i] != "undefined")
			 {
				price = data[sProd][sCust][i];
			 }
			 i--;
		}
		
		var prodTotal = price * units;
		
		// Get maintenance
		var mainTotal = prodTotal * maintenanceArr[document.getElementById("mainSel").value];
		
		
		var subTotal = prodTotal + mainTotal;
		
		// Get GST
		var gst = 0.00;
		if(document.getElementById("gstCheck") != null)
		{
			gst = subTotal * .1;
			document.getElementById("gstField").innerHTML = formatCurrency(gst);
		}
		
		var grandTotal = subTotal + gst;
		
		document.getElementById("priceField").innerHTML = formatCurrency(price);
		document.getElementById("prodField").innerHTML = formatCurrency(prodTotal);
		document.getElementById("mainField").innerHTML = formatCurrency(mainTotal);
		document.getElementById("subField").innerHTML = formatCurrency(subTotal);
		document.getElementById("grandField").innerHTML = formatCurrency(grandTotal);
	}
	
	setDate();
}




function clearForm()
{
	document.getElementById("priceField").innerHTML = "$0.00";
	document.getElementById("prodField").innerHTML = "$0.00";
	document.getElementById("mainField").innerHTML = "$0.00";
	document.getElementById("subField").innerHTML = "$0.00";
	document.getElementById("gstField").innerHTML = "$0.00";
	document.getElementById("grandField").innerHTML = "$0.00";
	document.getElementById("unitField").value = "";
}

function isInteger (s)
{
  var i;

  if (isEmpty(s))
  if (isInteger.arguments.length == 1) return 0;
  else return (isInteger.arguments[1] == true);

  for (i = 0; i < s.length; i++)
  {
     var c = s.charAt(i);

     if (!isDigit(c)) return false;
  }

  return true;
}

function isEmpty(s)
{
  return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
  return ((c >= "0") && (c <= "9"))
}

function formatCurrency(strValue)
{
	strValue = strValue.toString().replace(/\$|\,/g,'');
	dblValue = parseFloat(strValue);

	blnSign = (dblValue == (dblValue = Math.abs(dblValue)));
	dblValue = Math.floor(dblValue*100+0.50000000001);
	intCents = dblValue%100;
	strCents = intCents.toString();
	dblValue = Math.floor(dblValue/100).toString();
	if(intCents<10)
		strCents = "0" + strCents;
	for (var i = 0; i < Math.floor((dblValue.length-(1+i))/3); i++)
		dblValue = dblValue.substring(0,dblValue.length-(4*i+3))+','+
		dblValue.substring(dblValue.length-(4*i+3));
	return (((blnSign)?'':'-') + '$' + dblValue + '.' + strCents);
}

function setDate()
{
	var today = new Date();
	document.getElementById("todayDate").innerHTML = today.toString();
	today.setDate(today.getDate()+14); 
	document.getElementById("quoteDate").innerHTML = today.toString();
}
