//Set the default global variables
var psize;
var ptype;
var pink;
var qty_levels = new Array(24); 
var qty_minimum = new Array(24); 
var base_prices = new Array(24); 
for (var i = 0; i < 2; i++) {
	if (i==0) {
		psize = "8.5x11";
	}
	else if (i==1) {
		psize = "11x17";
	}
	for (var k = 0; k < 3; k++) {
		if (k==0) {
			pink = "4/4";
		}
		else if (k==1) {
			pink = "4/1";
		}
		else if (k==2) {
			pink = "4/0";
		}
		var params = psize+","+pink
		qty_levels[params]="100,250,500,1000,1500,2000,2500,3000,3500,4000,4500,5000,5500,6000,6500,7000,7500,8000,8500,9000,9500,10000";
		qty_minimum[params]="100"; 
		var level_array = qty_levels[params].split(",");
		for (var m = 0; m < level_array.length; m++) {
			base_prices[level_array[m]+","+params]="150.00"; 
		}
	}
}

function CalculatePrice(){
	var params = GetParams();
	var paper_price = GetPaperPrice();
	var min_quantity;
	var max_quantity;
	var min_price;
	var max_price;
	var base_price;
	var x_value;
	var y_value;
	var folding_price;
	var total_price;
	var offset;
	var default_price = base_prices["8.5x11,80#GT"];

	if ((1*document.getElementById("tbxQuantity").value).toString() == "NaN") {
		document.getElementById("tbxQuantity").value = qty_minimum[params];
	}
	if ((1*document.getElementById("tbxQuantity").value) < qty_minimum[params]) {
		document.getElementById("tbxQuantity").value = qty_minimum[params];
	}

	min_quantity  = GetQtyLevel(params);
	max_quantity  = GetNextQtyLevel(params);

	if (document.getElementById("rbSize_1").checked) {
		default_price = base_prices["11x17,80#GT"];
	}
	
	min_price = eval(base_prices[min_quantity+","+params]+"/"+min_quantity);
	max_price = eval(base_prices[max_quantity+","+params]+"/"+max_quantity);
	if (max_quantity == min_quantity) { max_quantity += 1 };
	x_value = (max_price - min_price) / (max_quantity - min_quantity);
	y_value = min_price - min_quantity * x_value;
	base_price = document.getElementById("tbxQuantity").value * x_value + y_value;
	offset = (paper_price-default_price)*.01*document.getElementById("tbxQuantity").value;
	base_price = base_price*document.getElementById("tbxQuantity").value+offset;

	folding_price = GetFoldingPrice();
	
	total_price = base_price + folding_price;
	
	document.getElementById("ShoppingCart1_product2").value = FormatCents(total_price-folding_price);
	document.getElementById("ShoppingCart1_folding2").value = FormatCents(folding_price);
	document.getElementById("ShoppingCart1_txtTotal").value = FormatCents(total_price);
	ResetImages();
	
}

function GetParams() {
	var params;
	var psize;
	var pink;
	
	//Get the paper size
	if (document.getElementById("rbSize_0").checked) {
		psize = "8.5x11";
	}
	else if (document.getElementById("rbSize_1").checked) {
		psize = "11x17";
	}
	else {
		document.getElementById("rbSize_0").checked = true;
		psize = "8.5x11";
	}

	//Get the ink type
	if (document.getElementById("rbBackInk1").checked) {
		pink = "4/4";
	}
	else if (document.getElementById("rbBackInk2").checked) {
		pink = "4/1";
	}
	else if (document.getElementById("rbBackInk3").checked) {
		pink = "4/0";
	}
	else {
		document.getElementById("rbBackInk_2").checked = true;
		pink = "4/0";
	}
	
	params = psize+","+pink;

	return params;
}

function GetPaperPrice() {
	var paper_price;
	var psize;
	
	//Get the paper size
	if (document.getElementById("rbSize_0").checked) {
		psize = "8.5x11";
	}
	else if (document.getElementById("rbSize_1").checked) {
		psize = "11x17";
	}
	else {
		document.getElementById("rbSize_0").checked = true;
		psize = "8.5x11";
	}

	//Get the paper type
	if (document.getElementById("rbPaperStock_0").checked) {
		paper_price = eval(base_prices[psize+",60#LT"]);
	}
	else if (document.getElementById("rbPaperStock_1").checked) {
		paper_price = eval(base_prices[psize+",70#LT"]);
	}
	else if (document.getElementById("rbPaperStock_2").checked) {
		paper_price = eval(base_prices[psize+",80#GT"]);
	}
	else if (document.getElementById("rbPaperStock_3").checked) {
		paper_price = eval(base_prices[psize+",80#ST"]);
	}
	else if (document.getElementById("rbPaperStock_4").checked) {
		paper_price = eval(base_prices[psize+",100#GT"]);
	}
	else if (document.getElementById("rbPaperStock_5").checked) {
		paper_price = eval(base_prices[psize+",100#ST"]);
	}
	else if (document.getElementById("rbPaperStock_6").checked) {
		paper_price = eval(base_prices[psize+",80#GC"]);
	}
	else if (document.getElementById("rbPaperStock_7").checked) {
		paper_price = eval(base_prices[psize+",80#SC"]);
	}
	else {
		document.getElementById("rbPaperStock_2").checked = true;
		paper_price = eval(base_prices[psize+",80#GT"]);
	}
	
	return paper_price;
}

function GetQtyLevel(params) {
	var level_array = qty_levels[params].split(",");
	var rtn_level = 0;
	var qty_level = 0;
	
	for (var i = 0; i < level_array.length; i++) {
		qty_level = level_array[i];
		if ((document.getElementById("tbxQuantity").value *1) >= (qty_level*1)) {
			rtn_level = qty_level;
		}
	}
	return rtn_level;
}

function GetNextQtyLevel(params) {
	var level_array = qty_levels[params].split(",");
	var rtn_level = 0;
	var qty_level = 0;
	
	for (var i = 0; i < level_array.length-1; i++) {
		qty_level = level_array[i];
		if ((document.getElementById("tbxQuantity").value *1) >= (qty_level*1)) {
			rtn_level = level_array[i+1];
		}
	}
	if (rtn_level == 0) {
		rtn_level = level_array[level_array.length-1];
	}
	return rtn_level;
}

function GetFoldingPrice() {
	var folding_price;
	
	if (document.getElementById("rbFoldingNoFold").checked) {
		folding_price = 0;
	}
	else {
		folding_price = document.getElementById("tbxQuantity").value*.01;
		if (folding_price < 10) {
			folding_price = 10;
		}
	}
	return folding_price;
}

function ResetImages() {
	if (document.getElementById("rbBackInk1").checked) {
		document['imgBack'].src='images/brochure2c.gif';
	}
	else if (document.getElementById("rbBackInk2").checked) {
		document['imgBack'].src='images/brochure2b.gif';
	}
	else {
		document['imgBack'].src='images/brochure2w.gif';
    }
	if (document.getElementById("rbFoldingNoFold").checked) {
		document['imgFolding'].src='images/no_fold.gif';
	}
	else if (document.getElementById("rbFoldingHalfFold").checked) {
		document['imgFolding'].src='images/half_fold.gif';
	}
	else if (document.getElementById("rbFoldingTriFold").checked) {
		document['imgFolding'].src='images/tri_fold.gif';
	}
	else {
		document['imgFolding'].src='images/z_fold.gif';
    }
}

function FormatCents(value) {
	var result=(Math.round(value*100)/100).toString();
	var dec_pos = result.indexOf(".");
	var zeros = 0;
	if (dec_pos < 0) {
		result += ".";
		zeros = 2;
	}
	else {
		zeros = 2 - (result.length - dec_pos - 1);
	}
	for (var i = 0; i < zeros; i++) {
		result += "0";
	}
	result = "$" + result;
	return result;
}

function btnCheckOut() {
	if (document.getElementById("Shipping1_txtZipCode").value == "" && document.getElementById("Shipping1_rbShipping1").checked) {
		alert("You must enter a zip code in the shipping section before checking out.");
		window.scroll(0,31999);
		document.getElementById("Shipping1_txtZipCode").focus();
	}
	else {
		document.getElementById("ShoppingCart1_btnCheckOut").click();
	}
}

//Here is how I do pricing using basic algebra 
//
//Assume a Quantity of 100 = $247.00
//       a Quantity of 300 = $450.00
//What is the price for a quantity of 220
//
//A linear equation will take the form of 'Quantity * x + y = Price'
//So our first two equations can be written as follows
//100x + y = 247
//300x + y = 450
//
//Using the substitution technique for solving simultaneous equations
//we solve for both x and y
//
//y = 247 - 100x   <-- from our first equation we rewrite it terms of y
//
//300x + 247 - 100x = 450   <-- substitute 247 - 100x for y in the 2nd equation, then solve for x
//200x = 450 - 247
//200x = 203
//x = 203/200
//x = 1.015  <-- this is the value of x
//(300)(1.015) + y = 450  <-- substitute 1.015 for x in the 2nd equation, then solve for y
//y = 450 - (300)(1.015)
//y = 145.5  <-- this is the value of y
//
//(100)(1.015) + 145.5 = 247  <-- check our answer
//(300)(1.015) + 145.5 = 450  <-- check our answer
//
//220x + y = ?
//(220)(1.015) + 145.5 = 368.80  <-- this is our price for a quantity of 220
//
//So here is what I do
//1) Get the current price of item and next higher price of item
//2) I should have the following variables
//   MinQuantity, MinPrice
//   MaxQuantity, MaxPrice
//   xVal = (MaxPrice-MinPrice)/(MaxQuantity-MinQuantity)
//   yVal = MinPrice - MinQuantity * xVal
//3) My current price is (Quantity)(xVal) + (yVal)

