// ******************************************** \\
// ************ HTML DISPLAY LOGIC ************* \\
// ******************************************** \\

// Shows the options per the selected package type
function showOptions() {
	// Hide the other options
	document.getElementById("Options_21").style.display="none";
	document.getElementById("Options_30").style.display="none";
	document.getElementById("Options_31").style.display="none";
	document.getElementById("Options_50").style.display="none";
	document.getElementById("Options_51").style.display="none";
	document.getElementById("Options_70").style.display="none";
	document.getElementById("Options_71").style.display="none";

	// Display the correct option based on the selection
	var OptionsToShow = document.getElementById(document.getElementById("package_type").value);
	OptionsToShow.style.display="block";

	// Calculate the totals while we are here
	getTotals()
}




// ******************************************** \\
// ********** PACKAGE BUILDING LOGIC ********** \\
// ******************************************** \\

// Mains variable declarations
var MainsIDArray;
var MainsCostArray;
var MainsSize;

// Centers variable declarations
var CentersIDArray;
var CentersCostArray;
var CentersSize;

// Rears variable declarations
var RearsIDArray;
var RearsCostArray;
var RearsSize;

// Subwoofers variable declarations
var SubwoofersIDArray;
var SubwoofersCostArray;
var SubwoofersSize;

// General variable declarations
var NumberOfElements;


// Setup the variables
function setUp(MainSize, CenterSize, RearSize, SubwooferSize) {
	// Setup the mains arrays
	MainsIDArray = new Array(MainSize);
	MainsCostArray = new Array(MainSize);
	MainsSize = 0;

	// Setup the centers arrays
	CentersIDArray = new Array(CenterSize);
	CentersCostArray = new Array(CenterSize);
	CentersSize = 0;

	// Setup the rears arrays
	RearsIDArray = new Array(RearSize);
	RearsCostArray = new Array(RearSize);
	RearsSize = 0;

	// Setup the subwoofers arrays
	SubwoofersIDArray = new Array(SubwooferSize);
	SubwoofersCostArray = new Array(SubwooferSize);
	SubwoofersSize = 0;
}

// Populate the arrays
function setElements(ElementType, ElementID, ElementCost) {
	switch (ElementType) {
		case "Mains":
			MainsIDArray[MainsSize] = ElementID;
			MainsCostArray[MainsSize] = ElementCost;
			MainsSize++;
			break;
		case "Centers":
			CentersIDArray[CentersSize] = ElementID;
			CentersCostArray[CentersSize] = ElementCost;
			CentersSize++;
			break;
		case "Rears":
			RearsIDArray[RearsSize] = ElementID;
			RearsCostArray[RearsSize] = ElementCost;
			RearsSize++;
			break;
		case "Subwoofers":
			SubwoofersIDArray[SubwoofersSize] = ElementID;
			SubwoofersCostArray[SubwoofersSize] = ElementCost;
			SubwoofersSize++;
			break;
	}
}

// Calculate the totals
function getTotals() {
	// Basic variable declarations
	var l_MainsID = 0;
	var l_CentersID = 0;
	var l_RearsID = 0;
	var l_SecondaryRearsID = 0;
	var l_SubwoofersID = 0;
	var l_Amount = 0;
	var l_MainsCost = 0, l_CentersCost = 0, l_RearsCost = 0, l_SecondaryRearsCost = 0, l_SubwoofersCost = 0;

	// Determine what type of package we are dealing with
	var l_PackageType = document.getElementById("package_type").value;
	switch (l_PackageType) {
		// 2.1 system
		case "Options_21":
			// Get the selected products' ids
			l_MainsID = document.getElementById("Mains_21").value;
			l_SubwoofersID = document.getElementById("Subwoofers_21").value;
			break;

		// 2.0 system
		case "Options_30":
			l_MainsID = document.getElementById("Mains_30").value;
			l_CentersID = document.getElementById("Centers_30").value;
			break;

		// 3.1 system
		case "Options_31":
			l_MainsID = document.getElementById("Mains_31").value;
			l_CentersID = document.getElementById("Centers_31").value;
			l_SubwoofersID = document.getElementById("Subwoofers_31").value;
			break;

		// 5.0 system
		case "Options_50":
			l_MainsID = document.getElementById("Mains_50").value;
			l_CentersID = document.getElementById("Centers_50").value;
			l_RearsID = document.getElementById("Rears_50").value;
			break;

		// 5.1 system
		case "Options_51":
			l_MainsID = document.getElementById("Mains_51").value;
			l_CentersID = document.getElementById("Centers_51").value;
			l_RearsID = document.getElementById("Rears_51").value;
			l_SubwoofersID = document.getElementById("Subwoofers_51").value;
			break;

		// 7.0 system
		case "Options_70":
			l_MainsID = document.getElementById("Mains_70").value;
			l_CentersID = document.getElementById("Centers_70").value;
			l_RearsID = document.getElementById("Rears_70").value;
			l_SecondaryRearsID = document.getElementById("SecondaryRears_70").value;
			break;

		// 7.1 system
		case "Options_71":
			l_MainsID = document.getElementById("Mains_71").value;
			l_CentersID = document.getElementById("Centers_71").value;
			l_RearsID = document.getElementById("Rears_71").value;
			l_SecondaryRearsID = document.getElementById("SecondaryRears_71").value;
			l_SubwoofersID = document.getElementById("Subwoofers_71").value;
			break;
	}

	// Find the costs of the mains
	if (l_MainsID > 0) {
		for (var i = 0; i<MainsSize; i++) {
			if (MainsIDArray[i] == l_MainsID) {
				l_MainsCost = MainsCostArray[i] * 1; 
				l_Amount++; 
			}
		}
	}

	// Find the costs of the centers
	if (l_CentersID > 0) {
		for (var i = 0; i<CentersSize; i++) {
			if (CentersIDArray[i] == l_CentersID) {
				l_CentersCost = CentersCostArray[i] * 1; 
				l_Amount++; 
			}
		}
	}

	// Find the costs of the rears
	if (l_RearsID > 0) {
		for (var i = 0; i<RearsSize; i++) {
			if (RearsIDArray[i] == l_RearsID) {
				l_RearsCost = RearsCostArray[i] * 1; 
				l_Amount++; 
			}
		}
	}

	// Find the costs of the secondary rears
	if (l_SecondaryRearsID > 0) {
		for (var i = 0; i<RearsSize; i++) {
			if (RearsIDArray[i] == l_SecondaryRearsID) {
				l_SecondaryRearsCost = RearsCostArray[i] * 1;
				l_Amount++; 
			}
		}
	}

	// Find the costs of the subwoofers
	if (l_SubwoofersID > 0) {
		for (var i = 0; i<SubwoofersSize; i++) {
			if (SubwoofersIDArray[i] == l_SubwoofersID) {
				l_SubwoofersCost = SubwoofersCostArray[i] * 1; 
				l_Amount++; 
			}
		}
	}

	// Create the total
	var l_TotalCost = l_MainsCost + l_CentersCost + l_RearsCost + l_SecondaryRearsCost + l_SubwoofersCost;

	// Update the page with the totals... theoretically it should never hit the else, right?
	// if and else statement updated to reflect customer attempting to purchase package which costs less than the subwoofer inside it.
	if (l_Amount > 1 && (Math.round((l_TotalCost * .85) * 100) / 100) > (l_SubwoofersCost * 1.1)) {
		document.getElementById("PackagePrice").innerHTML = (Math.round((l_TotalCost * .85) * 100) / 100);
		document.getElementById("PackagePrice2").innerHTML = (Math.round((l_TotalCost * .85) * 100) / 100);
		document.getElementById("PackagePercent").innerHTML = 15;
		document.getElementById("PackageSavings").innerHTML = (Math.round((l_TotalCost - (l_TotalCost * .85)) * 100) / 100);
		document.getElementById("RegularCost").innerHTML = l_TotalCost;
	}else{
		document.getElementById("PackagePrice").innerHTML = l_TotalCost;
		document.getElementById("PackagePrice2").innerHTML = l_TotalCost;
		document.getElementById("PackagePercent").innerHTML = 0;
		document.getElementById("PackageSavings").innerHTML = 0;
		document.getElementById("RegularCost").innerHTML = l_TotalCost;
	}
}