String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}

function VerifyValue(field)
{
	field.value = field.value.replace(/^[0]+/g,"");
	var parsed = parseInt(field.value);
	
	if(isNaN(parsed))
	{
		field.value = 0;
	}
	else
	{
		field.value = parsed;
	}
	
	UpdatePrice();
}

function VerifyFloat(field)
{
	field.value = field.value.replace(/^[0]+/g,"");
	var parsed = parseFloat(field.value);
	
	if(isNaN(parsed))
	{
		field.value = 0;
	}
	else
	{
		if(field.value.endsWith("."))
			parsed += ".";
		field.value = parsed;			
	}
	
	UpdatePrice();
}

function customShipping(customOn)
{
	if(customOn)
	{
		document.orderform.shipping_type[2].checked = true;
		document.getElementById('custom_shipping_div').style.display = 'block';
	}
	else
	{
		document.orderform.shipping_type[2].checked = false;
		document.getElementById('custom_shipping_div').style.display = 'none';
	}
}

function forceCustomShipping(forceOn)
{
	if(forceOn)
	{
		customShipping(true);
		document.getElementById('shipping_choices_div').style.display = 'none';
	}
	else
	{
		document.getElementById('shipping_choices_div').style.display = 'block';
	}		
}

function allowFoil(customOn)
{
	if(!customOn)
	{
		document.getElementById('foil_div').style.display = 'none';
	}
	else
	{
		document.getElementById('foil_div').style.display = 'block';
	}		
}

function institution(customOn)
{
	UpdatePrice();
	if(customOn)
	{
		document.getElementById('shipping_institution_div').style.display = 'block';
		document.getElementById('billing_institution_div').style.display = 'block';
	}
	else
	{
		document.getElementById('shipping_institution_div').style.display = 'none';
		document.getElementById('billing_institution_div').style.display = 'none';		
	}
}

function purchaseOrder(customOn)
{
	UpdatePrice();
	if(customOn)
	{
		document.getElementById('institution_div').style.display = 'block';
	}
	else
	{
		document.getElementById('institution_div').style.display = 'none';	
	}
}		
	

function UpdatePrice()
{
	var Price = 0;
	var Shipping = 0;
	var Tax = 0;
	var Total = 0;
	
	var BagCount = 0;
	var PelletCount = 0;
	var QuartCount = 0;
	
	//Count different items
	BagCount += parseInt(document.getElementById("bargain").value);
	
	PelletCount += parseInt(document.getElementById("premium").value);
	PelletCount += parseInt(document.getElementById("jumbo").value);
	PelletCount += parseInt(document.getElementById("bird").value);
				
	QuartCount += parseInt(document.getElementById("standard").value);
	//QuartCount += parseInt(document.getElementById("basic").value);
	QuartCount += parseInt(document.getElementById("bargainquart").value);		

	if(PelletCount == 0)
	{
		allowFoil(false);
	}
	else
	{
		allowFoil(true);
	}
		
	//Pricing
	Price += 0.90 * document.getElementById("bargain").value;
	
	Price += 1.55 * document.getElementById("premium").value;
	Price += 1.80 * document.getElementById("jumbo").value;
	Price += 1.75 * document.getElementById("bird").value;

	Price += 27.0 * document.getElementById("standard").value;
	//Price += 16 * document.getElementById("basic").value;
	Price += 10 * document.getElementById("bargainquart").value;
	
	//Foil Wrap?
	if(document.orderform.foil[0].checked)
	{
		if(PelletCount > 0)
		{
			Price += 0.10 * PelletCount;
		}
	}
	
	Price = Math.round(Price*100)/100;
	
	
		
	//Shipping
	document.orderform.shipping_type[0].disabled = false;
	document.orderform.shipping_type[1].disabled = false;
	
	forceCustomShipping(false);
	
	if(BagCount > 0)
	{
		if(BagCount > 190)
		{
			forceCustomShipping(true);
		}
		else if(document.orderform.shipping_type[0].checked)
		{
			if(BagCount <= 10) {
				Shipping += parseFloat(5);
			} else if(BagCount <= 30) {
				Shipping += parseFloat(8.5);
			} else if(BagCount <= 60) {
				Shipping += parseFloat(17);
			} else if(BagCount <= 100) {
				Shipping += parseFloat(22);
			} else if(BagCount <= 150) {
				Shipping += parseFloat(27);
			} else if(BagCount <= 200) {
				Shipping += parseFloat(37);
			}
		}
		else if(document.orderform.shipping_type[1].checked)
		{
			if(BagCount <= 10) {
				Shipping += parseFloat(5);
			} else if(BagCount <= 30) {
				Shipping += parseFloat(8.5);
			} else if(BagCount <= 60) {
				Shipping += parseFloat(14);
			} else if(BagCount <= 100) {
				Shipping += parseFloat(16);
			} else if(BagCount <= 150) {
				Shipping += parseFloat(18);
			} else if(BagCount <= 200) {
				Shipping += parseFloat(20);
			}
		}
	}
	
	if(PelletCount > 0)
	{
		if(PelletCount > 300)
		{
			forceCustomShipping(true);
		}
		else if(document.orderform.shipping_type[0].checked)
		{
			if(PelletCount <= 30) {
				Shipping += parseFloat(5.00);
			} else if(PelletCount <= 60) {
				Shipping += parseFloat(8.5);
			} else if(PelletCount <= 150) {
				Shipping += parseFloat(15);
			} else if(PelletCount <= 200) {
				Shipping += parseFloat(17);
			} else if(PelletCount <= 250) {
				Shipping += parseFloat(22);
			}
		}
		else if(document.orderform.shipping_type[1].checked)
		{
			if(PelletCount <= 30) {
				Shipping += parseFloat(5.0);
			} else if(PelletCount <= 60) {
				Shipping += parseFloat(8.5);
			} else if(PelletCount <= 150) {
				Shipping += parseFloat(12);
			} else if(PelletCount <= 200) {
				Shipping += parseFloat(14);
			} else if(PelletCount <= 250) {
				Shipping += parseFloat(16);
			}
		}
	}
	
	if(QuartCount > 0)
	{
		if(QuartCount > 12)
		{
			forceCustomShipping(true);
		}
		else if(document.orderform.shipping_type[0].checked)
		{
			if(QuartCount <= 2) {
				Shipping += parseFloat(8.5);
			} else if(QuartCount <= 4) {
				Shipping += parseFloat(15);
			} else if(QuartCount <= 8) {
				Shipping += parseFloat(17);
			} else if(QuartCount <= 11) {
				Shipping += parseFloat(37);
			}
		}
		else if(document.orderform.shipping_type[1].checked)
		{
			if(QuartCount <= 2) {
				Shipping += parseFloat(8.5);
			} else if(QuartCount <= 4) {
				Shipping += parseFloat(13);
			} else if(QuartCount <= 8) {
				Shipping += parseFloat(15);
			} else if(QuartCount <= 11) {
				Shipping += parseFloat(20);
			}
		}
	}
	
	if(document.orderform.shipping_type[2].checked)
	{
		Shipping += parseFloat(document.getElementById("custom_shipping_price").value);
	}
						
	//Paying Tax?
	if(document.orderform.tax[0].checked)
	{
		Tax = Price * .077;
	}
	
	Shipping = Math.ceil(Shipping*100)/100;
	Tax = Math.round(Tax*100)/100;
	
	Price += document.getElementById("homeschool").value * 4.00;
	
	Total = Math.round((Price + Shipping + Tax)*100)/100;
	
	//set document output			
	document.getElementById("priceresult").innerHTML=Price + "";
	
	document.getElementById("taxresult").innerHTML=Tax + "";
	document.getElementById("taxsubmit").value=Tax + "";
	document.getElementById("shippingresult").innerHTML=Shipping + "";
	document.getElementById("shippingsubmit").value=Shipping + "";
	
	document.getElementById("totalresult").innerHTML=Total + "";
	document.getElementById("totalsubmit").value=Total + "";
}


function copyShippingToBilling() {
	if(document.getElementById("BillShip").checked)
	{
		document.getElementById("billingto").value=document.getElementById("shippingto").value;
		document.getElementById("billinginstitution").value=document.getElementById("shippinginstitution").value;
		document.getElementById("billingaddress").value=document.getElementById("shippingaddress").value;
		document.getElementById("billingcity").value=document.getElementById("shippingcity").value;
		document.getElementById("billingstate").value=document.getElementById("shippingstate").value;
		document.getElementById("billingzipcode").value=document.getElementById("shippingzipcode").value;
	}
}


function Validator()
{
	var BagCount = 0;
	var PelletCount = 0;
	var QuartCount = 0;
	
	//Count different items
	BagCount += parseInt(document.getElementById("bargain").value);
	
	PelletCount += parseInt(document.getElementById("premium").value);
	PelletCount += parseInt(document.getElementById("jumbo").value);
	PelletCount += parseInt(document.getElementById("bird").value);
				
	QuartCount += parseInt(document.getElementById("standard").value);
	//QuartCount += parseInt(document.getElementById("basic").value);	
	QuartCount += parseInt(document.getElementById("bargainquart").value);	
		
	if(BagCount + PelletCount > 0 && BagCount + PelletCount < 10)
	{
		alert("When ordering individual owl pellets or bargain bags, you must order a minumum of 10 in any combination.");
		return false;
	}
	if(PelletCount <= 0 && BagCount <= 0 && QuartCount <= 0 && document.getElementById("homeschool").value <= 0)
	{
		alert("You must order something.");
		return false;
	}
	//shipping type?
	if(!document.orderform.shipping_type[0].checked && !document.orderform.shipping_type[1].checked && !document.orderform.shipping_type[2].checked)
	{
		alert("You must chose your shipping type.");
		return false;
	}
	//custom shipping price entered
	if(document.orderform.shipping_type[2].checked && document.getElementById("custom_shipping_price").value == "0")
	{
		alert("You must enter the custom shipping price we quoted you. If you havn't recieved a quote please contact us.");
		return false;
	}
	//lives in washington?
	if(!document.orderform.tax[0].checked && !document.orderform.tax[1].checked)
	{
		alert("You must answer if you live in Washington.");
		return false;
	}
	
	if(document.getElementById("firstname").value=="")
	{
		alert("You must enter your first name.");
		return false;
	}
	if(document.getElementById("lastname").value=="")
	{
		alert("You must enter your last name.");
		return false;
	}
	if(document.getElementById("email").value=="")
	{
		alert("You must enter your email.");
		return false;
	}
	if (document.getElementById("shippingaddress").value=="")
	{
		alert("You must enter the shipping address.");
		return false;
	}
	if (document.getElementById("shippingcity").value=="")
	{
		alert("You must enter the shipping city.");
		return false;
	}
	if (document.getElementById("shippingstate").value=="")
	{
		alert("You must enter the shipping state.");
		return false;
	}
	if (document.getElementById("shippingzipcode").value=="")
	{
		alert("You must enter the shipping zip code.");
		return false;
	}
	if (document.getElementById("billingaddress").value=="")
	{
		alert("You must enter the billing address.");
		return false;
	}
	if (document.getElementById("billingcity").value=="")
	{
		alert("You must enter the billing city.");
		return false;
	}
	if (document.getElementById("billingstate").value=="")
	{
		alert("You must enter the billing state.");
		return false;
	}
	if (document.getElementById("billingzipcode").value=="")
	{
		alert("You must enter the billing zip code.");
		return false;
	}
	//selected payment type
	if(	!document.orderform.paymenttype[0].checked &&
		!document.orderform.paymenttype[1].checked &&
		!document.orderform.paymenttype[2].checked)
	{
		alert("You must select a payment type.");
		return false;
	}
		
	return true;
}