function CheckRequiredFields(){

	if (document.getElementById('numpages').value == "") {
			alert("Please Select the Number of Pages.")
			document.getElementById('numpages').focus();
			return false;
	}
	
	if (document.getElementById('coverstock')[document.getElementById('coverstock').selectedIndex].value == "") {
			alert("Please Select the Cover Type.")
			document.getElementById('stock').focus();
			return false;
	}
	
	if (document.getElementById('stock')[document.getElementById('stock').selectedIndex].value == "") {
			alert("Please Select the Inside Paper Type.")
			document.getElementById('stock').focus();
			return false;
	}
	

	var numofcolor = document.getElementById('numofcolor').value;
	var numofbw = document.getElementById('numofbw').value;
	if(numofcolor == ""){numofcolor=0;}
	if(numofbw == ""){numofbw=0;}
	var numpages = removeCommas(document.getElementById('numpages').value);
	var pagesremaining = numpages - numofcolor - numofbw;
	//var pagecheck = numpages%4;
	
	/*if(pagecheck != 0){
			alert("Number of pages must be a multiple of 4.")
			document.getElementById('numpages').focus();
			return false;
	}*/
	
	if(pagesremaining != "0"){
			
			alert("Please Adjust your number of Color & B&W Pages to be equal to the amount of total pages.")
			document.getElementById('numofcolor').focus();
			return false;
		
	}
	
	
	if (document.getElementById('quanity').value == "") {
			alert("Please Enter a Quantity.")
			document.getElementById('quanity').focus();
			return false;
	}
	
	if (document.getElementById('projectName').value == "") {
		alert("Please Enter a Project Name.")
		document.getElementById('projectName').focus();
		return false;
	}
	
	
	return true;
	
}

function removeCommas(aNum) {

//remove any commas

aNum=aNum.replace(/,/g,"");

//remove any spaces

aNum=aNum.replace(/\s/g,"");

return aNum;

}

function totalCost(){

	var numpages = removeCommas(document.getElementById('numpages').value);
	
	var coverstock = document.getElementById('coverstock')[document.getElementById('coverstock').selectedIndex].value;
	var stock = document.getElementById('stock')[document.getElementById('stock').selectedIndex].value;
	var bleed = document.getElementById('bleed')[document.getElementById('bleed').selectedIndex].value;
	
	var numofcolor = removeCommas(document.getElementById('numofcolor').value);
	var numofbw = removeCommas(document.getElementById('numofbw').value);
	
	// Display Bleed Requirements
		if (bleed == '2'){
			document.getElementById("fullbleedrequirments").style.display = "block";
		}
		else {
			document.getElementById("fullbleedrequirments").style.display = "none";	
		}
	
	var pagesremaining = numpages - numofcolor;
	pagesremaining = pagesremaining - numofbw;
	
	if (pagesremaining < 0) {
		alert("Your Amount of Total Pages is less than your Total Color Pages + B&W Pages.")
		//halts the function...
		return
	}
	
	var quanity = removeCommas(document.getElementById('quanity').value);
	
	
	numpages = Number(numpages);
	if (numofbw != "") {numofcolor = Number(numofcolor);}
	if (numofbw != "") {numofbw = Number(numofbw);}
	quanity = Number(quanity);

	

	
	
	// Calculate Paper Size
	if (document.getElementById('papersize1').checked){
	
		var papersize = document.getElementById('papersize1').value;
	
	}
	else if (document.getElementById('papersize2').checked){
	
		var papersize = document.getElementById('papersize2').value;
	
	}
	else if (document.getElementById('papersize3').checked){
	
		var papersize = document.getElementById('papersize3').value;
	
	}
	
	
	
	if (papersize == "3"){
	var basepricefinder = (numpages) * quanity;
	}
	else{
	var basepricefinder = (numpages/2) * quanity;
	}
	
	var bwprice = .04;
	

	// Initalize Variables
	
	
	var baseprice = 0;
	var basestock = 0;
	var basepaper = 0;
	var basefold = 0;
	var subtotal = 0;
	var subtotal2 = 0;
	var folding = .00;
	var paperfee = 0;
	
        
	// GET BASE PRICE	
        baseprice = getBasePrice(basepricefinder);
		


	
	switch (coverstock) {
		
		// 20lb - White
		case "1": 
		coverstock = .00;
		break;
		
		// 24lb - White		
		case "2": 
		coverstock = .01;
		break;
		
		// 28lb - White
		case "3": 
		coverstock = .02;
		break;
		
		// 80lb White Gloss Text
		case "4": 
		coverstock = .03;
		break;
		
		// 67lb - White	Cover Stock	
		case "5": 
		coverstock = .04;
		break;
		
		// 110lb - White Card Stock
		case "6": 
		coverstock = .05;
		break;
				
		// 67lb Color Cover Stock
		case "7": 
		coverstock = .07;
		break;
				
		// 20lb Color
		case "8": 
		coverstock = .03;
		break;
		
		// 80lb Gloss Cover Stock
		case "9": 
		coverstock = .07;
		break;
				
		// 100lb Gloss Card Stock
		case "10": 
		coverstock = .09;
		break;
			
			
		// 100lb - White Gloss Text
		case "12": 
		coverstock = .05;
		break;
		
		// 24lb - Color Paper
		case "13": 
		coverstock = .03;
		break;
			
			}
	
		switch (stock) {
		
		// 20lb - White
		case "1": 
		basestock = .00;
		break;
		
		// 24lb - White		
		case "2": 
		basestock = .01;
		break;
		
		// 28lb - White
		case "3": 
		basestock = .02;
		break;
		
		// 80lb White Gloss Text
		case "4": 
		basestock = .03;
		break;
		
		// 67lb - White	Cover Stock	
		case "5": 
		basestock = .04;
		break;
		
		// 110lb - White Card Stock
		case "6": 
		basestock = .05;
		break;
				
		// 67lb Color Cover Stock
		case "7": 
		basestock = .07;
		break;
				
		// 20lb Color
		case "8": 
		basestock = .03;
		break;
		
		// 80lb Gloss Cover Stock
		case "9": 
		basestock = .07;
		break;
				
		// 100lb Gloss Card Stock
		case "10": 
		basestock = .09;
		break;
			
			
		// 100lb - White Gloss Text
		case "12": 
		basestock = .05;
		break;
		
		// 24lb - Color Paper
		case "13": 
		basestock = .03;
		break;
			
				
			}
			
			
				switch (bleed) {

				case "1": bleed = .00;
						break;

				case "2": bleed = .02;
						break;

					}
					
			
			switch (papersize) {

				case "1": basepaper = .00;
						break;

				case "2": basepaper = .04;
						break;

				case "3": basepaper = .10;
						break;

					}
					
	// Preparing for 1 page ordering single or double sided.
	
	// Check to make sure bw pages are  a even number and fix it if not...
	
	if ((numofbw%2) == 1){
		
		numofcolor = numofcolor + 1;
		numofbw = numofbw - 1;
	
	}
	
	// Compare Total pages to Color Selections.

	if (numpages != (numofcolor + numofbw)){
		
		numofcolor = numpages - numofbw;
		
	}
	
	// Calculate based on paper size:
	if (papersize == "1"){
		
		var color_subtotal = (baseprice) * (numofcolor/2);
		var bw_subtotal = (bwprice) * (numofbw/2); 
		var bleedfee = (bleed) * (numpages/4);
		subtotal = color_subtotal + bw_subtotal + bleedfee;
	}
	else if (papersize == "2"){
		
		var color_subtotal = (baseprice) * (numofcolor/2);
		var bw_subtotal = (bwprice) * (numofbw/2); 
		var bleedfee = (bleed) * (numpages/4);
		subtotal = color_subtotal + bw_subtotal + bleedfee;
		
		if (numpages != "4"){
			paperfee = (.04 * (numpages/4)) * quanity; 
		}
		else{
			paperfee = .04 * quanity;
		}
		
	}
	else if (papersize == "3"){
		
		var color_subtotal = (baseprice) * (numofcolor);
		var bw_subtotal = (bwprice) * (numofbw); 
		var bleedfee = (bleed) * (numpages/4);
		subtotal = color_subtotal + bw_subtotal + bleedfee;
		
	}
	
	// Calculating Stocks..
	if(numpages != 4){
	
	// get rid of coverpage
	var insidepages = numpages - 4;	
	
	stocktotal = (coverstock * quanity) + ((basestock * (insidepages/4)) * quanity);
	
	
	}
	else{
		
	stocktotal = coverstock * quanity;
	
	}

	var extras = folding;
	var totalExtras = extras * quanity;
	
	var totalprice = (subtotal * quanity) + totalExtras + stocktotal + paperfee;

	
	// START SHIPPING CALC Determine which chart to use:

	
	if(numofbw > 0)
	{
		var whichChart = "mix";
	}
	else{
		var whichChart = "color";
	}
	
	// Get Shipping Rate
	var mediamail = calcShipping(totalprice, whichChart, "media");
		var priority = calcShipping(totalprice, whichChart, "priority");
		var fedex = calcShipping(totalprice, whichChart, "fedex");
		var expressfedex = calcShipping(totalprice, whichChart, "expressfedex");
		
		// START NUMBERS & TEXT: Take Numbers to 2 Decimals, Leave Text Alone
	
		if (typeof mediamail == "number"){
			
			document.getElementById('shippingcost-mediamail').value = '$' + mediamail.toFixed(2);
		}
		else{
			document.getElementById('shippingcost-mediamail').value = mediamail;
		}
		
		if (typeof priority == "number"){
			
			document.getElementById('shippingcost-priority').value = '$' + priority.toFixed(2);
		}
		else{
			document.getElementById('shippingcost-priority').value = priority;
		}	
		
		if (typeof fedex == "number"){
			
			document.getElementById('shippingcost-fedex').value = '$' + fedex.toFixed(2);
		}
		else{
			document.getElementById('shippingcost-fedex').value = fedex;
		}	
		
		if (typeof expressfedex == "number"){
			
			document.getElementById('shippingcost-expressfedex').value = '$' + expressfedex.toFixed(2);
		}
		else{
			document.getElementById('shippingcost-expressfedex').value = expressfedex;
		}		
		// END NUMBERS & TEXT
	
	
		// Calc Selected Shipping & Price
		
		if (document.getElementById('shipping-type-media').checked){

			var shippingTotal = document.getElementById('shippingcost-mediamail').value;

		}
		else if (document.getElementById('shipping-type-priority').checked){

			var shippingTotal = document.getElementById('shippingcost-priority').value;

		}
		else if (document.getElementById('shipping-type-fedex').checked){

			var shippingTotal = document.getElementById('shippingcost-fedex').value;

		}
		else if (document.getElementById('shipping-type-expressfedex').checked){

			var shippingTotal = document.getElementById('shippingcost-expressfedex').value;

		}
		else if (document.getElementById('shipping-type-localpickup').checked){

			var shippingTotal = document.getElementById('shippingcost-localpickup').value;

		}
		
		// Preparing Shipping Total for Calculations.
		if (shippingTotal == "Free Shipping"){
			shippingTotal = 0;
		}
		else if (shippingTotal == "Not Available"){
			alert("Please select an available shipping service.")
			shippingTotal = 0;
		}
		else if (shippingTotal == "call for quote")
		{
			alert("Please Call For A Quote.");
			shippingTotal = 0;
		}
		else if (shippingTotal == "Free")
		{
			shippingTotal = 0;
		}
		else {
			
			shippingTotal = shippingTotal.slice(1);
			
		}
	
	
	var totalEstimatedPriceShipping = Number(shippingTotal) + Number(totalprice);

	
	// Display Prices
	
	document.getElementById('totalEstimatedPriceShipping').value = '$' + totalEstimatedPriceShipping.toFixed(2);
	document.getElementById('totalprice').value = '$' + totalprice.toFixed(2);
	document.getElementById('pagesremaining').value =  pagesremaining;
	//document.getElementById('creditcardtotal').value = totalEstimatedPriceShipping.toFixed(2);


}