
var sum0 = 0.0;
var part = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var costs = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var sums = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
var sum1 = 0.0;
var sum2 = 0.0;
var sum3 = 0.0;
var ran1 = 0;
var done1 = 0;

var je0 = ["JEXSV", "JESV", "JEMV", "JELV"];
var je1 = ["$21.00", "$24.60", "$29.40", "$39.60"];
var je2 = ["$17.50", "$20.50", "$24.50", "$33.25"];

var pe0 = ["PEXSV", "PESV", "PEMV", "PELV"];
var pe1 = ["$10.75", "$12.50", "$16.75", "$21.75"];
var pe2 = ["$8.50", "$9.75", "$13.50", "$16.50"];

// var pd0 = ["PAD1V", "PAD2V"];
// var pd1 = ["$0.25", "$0.45"];
// var pd2 = ["$0.25", "$0.45"];

var preview_window;

var ships1 = ["FIRSTS", "LASTS", "COMP2", "SHIPC", "SHIP1", "SHIP2", "SHIPS", "SHIPZ"];

function singles1(je, pe, pd)
{
	var i, e, obj1;
	
	try
	{
		if(je)
		{
			for(i=0; i<4; i++)
			{
				obj1 = document.getElementById(je0[i]);
				obj1.innerHTML = je1[i];
			}
		}
		
		if(pe)
		{
			for(i=0; i<4; i++)
			{
				obj1 = document.getElementById(pe0[i]);
				obj1.innerHTML = pe1[i];
			}
		}
		
		if(pd)
		{
/*			for(i=0; i<2; i++)
			{
				obj1 = document.getElementById(pd0[i]);
				obj1.innerHTML = pd1[i];
			}
*/		}
	}	
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "Load1(): error";
	}
}

function dozens1(je, pe, pd)
{
	var e, obj1;

	try
	{
		if(je)
		{
			for(i=0; i<4; i++)
			{
				obj1 = document.getElementById(je0[i]);
				obj1.innerHTML = je2[i];
			}
		}
		
		if(pe)
		{
			for(i=0; i<4; i++)
			{
				obj1 = document.getElementById(pe0[i]);
				obj1.innerHTML = pe2[i];
			}
		}
		
		if(pd)
		{
/*			for(i=0; i<2; i++)
			{
				obj1 = document.getElementById(pd0[i]);
				obj1.innerHTML = pd2[i];
			}
*/		}
	}	
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "Load1(): error";
	}
}

function key1(evt1)
{
	var curr_key=null, obj1=null, e, evt=null, str1="key1(): error", ret1 = true;
	
	try
	{
		if(done1)
		{
			obj1 = document.getElementById("BUTT1");
			obj1.style.visibility = "hidden";
			obj1 = document.getElementById("BUTT0");
			obj1.style.visibility = "hidden";
			done1 = 0;
			obj1 = document.getElementById("CALC1");
			obj1.value = "CALCULATE";
			obj1 = null;
		}
		
		if(arguments.length == 1 && evt1.which != undefined)
		{
			evt=evt1;	
		}
	
		curr_key = (evt!=null && evt.which)? evt.which: window.event.keyCode;
	}
	catch(e)
	{
		try
		{
			curr_key = window.event.keyCode;
		}
		catch(e)
		{
		}
	}
	
	try
	{
		obj1 = document.getElementById("show1");
//		obj1.innerHTML = curr_key;
		
		if(curr_key == null)
		{
//			if(evt==null) window.event.returnValue=false;
//			else return false;
//			pesky Mozilla <ret> and <tab>
			return true;
		}
		else if(curr_key == undefined)
		{
			return true;	
		}

		try
		{	
			obj1 = document.getElementById((evt==null)?window.event.srcElement.id:evt.target.id);
		}
		catch(e)
		{
			str1="key1(): error (#2)"+evt1;
		}
	
		if(curr_key == 13)
		{
			recalc1();
			ret1 = false;
		}
		else if((curr_key < 0x30 || curr_key > 0x39) && 
			curr_key != 8 && curr_key != 9)
		{
			if(evt==null) window.event.returnValue=false;
			else ret1 = false;
		}
		else if(obj1.value.length >= 3 && 
			curr_key != 8 && curr_key != 9)
		{
			if(evt==null) window.event.returnValue=false;
			else ret1 = false;
		}
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = str1;
	}
	
	/*
	try
	{
		if(ret1==false)
		{
			if(evt1!=null && evt1.which)
				evt1.which = 0;
			else
				window.event.keyCode = 0;
		}
	}
	catch(e)
	{}
	*/
	
	return(ret1);
}

function key2(evt1)
{
	var curr_key=null, e, evt=null, ret1 = true;
	
	try
	{
		if(arguments.length == 1 && evt1.which != undefined)
		{
			evt=evt1;	
		}
	
		curr_key = (evt!=null && evt.which)? evt.which: window.event.keyCode;
	}
	catch(e)
	{
		try
		{
			curr_key = window.event.keyCode;
		}
		catch(e)
		{
		}
	}
	
	try
	{
		if(curr_key == 13)
		{
			ret1 = false;	
		}
	}
	catch(e)
	{
	}
	
	return ret1;
}

function get1(val1)
{
	if(val1.charAt(0) == '$')
	{
		return parseFloat(val1.substr(1));	
	}
	else
	{
		return parseFloat(val1);	
	}
}
	
function get2(val1)
{
	var k, i, prec = 2, ret;
		
	if(isNaN(val1) || val1 < 0) val1 = 0.;
		
	prec = prec%7;
	ret = Math.round(val1*Math.pow(10,prec))/Math.pow(10,prec);
	ret = ret.toString();
   val1 = ret.search(/[.]/);
   
	if(val1 < 0)
	{
		ret += ".";
		for(i=0; i<prec; i++) ret += "0"
	}
	else
	{
		k = ret.length - val1 - 1;
		for(i=k; i<prec; i++) ret += "0";
	}
		
	return "$" + ret;
}
	
function recalc1()
{
	var i, i1, i2, i3, i4, x1, x2, x3, x4, e, obj1;
	
	try
	{
		sum0 = 0.0;
		
		i=document.getElementById("JEXS");
		i1=parseInt(i.value);
		if(isNaN(i1)) i1=0;
		if(i1 < 0) i1=0; 
		i.value = (i1==0)? "": i1;
		i=document.getElementById("JES");
		i2=parseInt(i.value);
		if(isNaN(i2)) i2=0;
		if(i2 < 0) i2=0;
		i.value = (i2==0)? "": i2;
		i=document.getElementById("JEM");
		i3=parseInt(i.value);
		if(isNaN(i3)) i3=0;
		if(i3 < 0) i3=0;
		i.value = (i3==0)? "": i3;
		i=document.getElementById("JEL");
		i4=parseInt(i.value);
		if(isNaN(i4)) i4=0;
		if(i4 < 0) i4=0;
		i.value = (i4==0)? "": i4;
		
		if(i1 + i2 + i3 + i4 >= 12)
		{
			dozens1(1, 0, 0);
		}
		else
		{
			singles1(1, 0, 0);
		}
			
		x1=document.getElementById("JEXSV");
		x1=get1(x1.innerHTML);
		x2=document.getElementById("JESV");
		x2=get1(x2.innerHTML);
		x3=document.getElementById("JEMV");
		x3=get1(x3.innerHTML);
		x4=document.getElementById("JELV");
		x4=get1(x4.innerHTML);
		
		costs[0] = x1;
		costs[1] = x2;
		costs[2] = x3;
		costs[3] = x4;
			
		x1*=i1;
		x2*=i2;
		x3*=i3;
		x4*=i4;

		sums[0] = x1;		
		sums[1] = x2;		
		sums[2] = x3;		
		sums[3] = x4;		
		sum0 += x1+x2+x3+x4;
		part[0] = i1;
		part[1] = i2;
		part[2] = i3;
		part[3] = i4;
			
		i1=document.getElementById("JEXST");
		i1.innerHTML = get2(x1);
		x1 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("JEST");
		i1.innerHTML = get2(x2);
		x2 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("JEMT");
		i1.innerHTML = get2(x3);
		x3 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("JELT");
		i1.innerHTML = get2(x4);
		x4 = parseFloat(i1.innerHTML.substr(1));

		i=document.getElementById("PES");
		i1=parseInt(i.value);
		if(isNaN(i1)) i1=0;
		if(i1 < 0) i1=0;
		i.value = (i1==0)? "": i1;
		i=document.getElementById("PEM");
		i2=parseInt(i.value);
		if(isNaN(i2)) i2=0;
		if(i2 < 0) i2=0;
		i.value = (i2==0)? "": i2;
		i=document.getElementById("PEL");
		i3=parseInt(i.value);
		if(isNaN(i3)) i3=0;
		if(i3 < 0) i3=0;
		i.value = (i3==0)? "": i3;
		i=document.getElementById("PEXS");
		i4=parseInt(i.value);
		if(isNaN(i4)) i4=0;
		if(i4 < 0) i4=0;
		i.value = (i4==0)? "": i4;

		if(i1 + i2 + i3 + i4 >= 12)
		{
			dozens1(0, 1, 0);
		}
		else
		{
			singles1(0, 1, 0);
		}
		
		x1=document.getElementById("PESV");
		x1=get1(x1.innerHTML);
		x2=document.getElementById("PEMV");
		x2=get1(x2.innerHTML);
		x3=document.getElementById("PELV");
		x3=get1(x3.innerHTML);
		x4=document.getElementById("PEXSV");
		x4=get1(x4.innerHTML);

		costs[4] = x1;
		costs[5] = x2;
		costs[6] = x3;
		costs[9] = x4;

		x1*=i1;
		x2*=i2;
		x3*=i3;
		x4*=i4;

		sums[4] = x1;		
		sums[5] = x2;		
		sums[6] = x3;		
		sums[9] = x4;
		sum0 += x1+x2+x3+x4;
		part[4] = i1;
		part[5] = i2;
		part[6] = i3;
		part[9] = i4;
		
		i1=document.getElementById("PEST");
		i1.innerHTML = get2(x1);
		x1 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("PEMT");
		i1.innerHTML = get2(x2);
		x2 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("PELT");
		i1.innerHTML = get2(x3);
		x3 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("PEXST");
		i1.innerHTML = get2(x4);
		x4 = parseFloat(i1.innerHTML.substr(1));

/*		
		i=document.getElementById("PAD1");
		i1=parseInt(i.value);
		if(isNaN(i1)) i1=0;
		if(i1 < 0) i1=0;
		i.value = (i1==0)? "": i1;
		i=document.getElementById("PAD2");
		i2=parseInt(i.value);
		if(isNaN(i2)) i2=0;
		if(i2 < 0) i2=0;
		i.value = (i2==0)? "": i2;

		if(i1 + i2 >= 12)
		{
			dozens1(0, 0, 1);
		}
		else
		{
			singles1(0, 0, 1);
		}
		
		x1=document.getElementById("PAD1V");
		x1=get1(x1.innerHTML);
		x2=document.getElementById("PAD2V");
		x2=get1(x2.innerHTML);
			
		costs[7] = x1;
		costs[8] = x2;

		x1*=i1;
		x2*=i2;

		sums[7] = x1;		
		sums[8] = x2;		
		sum0 += x1+x2;
		part[7] = i1;
		part[8] = i2;
		
		i1=document.getElementById("PAD1T");
		i1.innerHTML = get2(x1);
		x1 = parseFloat(i1.innerHTML.substr(1));
		i1=document.getElementById("PAD2T");
		i1.innerHTML = get2(x2);
		x2 = parseFloat(i1.innerHTML.substr(1));
*/

		costs[7] = 0;
		costs[8] = 0;
		sums[7] = 0;		
		sums[8] = 0;		
		part[7] = 0;
		part[8] = 0;

		obj1 = document.getElementById("show1");
//		obj1.innerHTML = "recalc1 done";
	}	
	catch(e)
	{
		var obj1;

		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc1(): Error";
	}
}

function recalc2(complain)
{
	var e, obj1, obj2, good = 0, i, where1 = "??";

	try
	{
		where1 = "1";
		
		i=document.getElementById("show1");
		i.innerHTML = ".";
		
		where1 = "2";
		
		if(complain == 0)
		{
			where1 = "3";
			
			singles1(1,1,1);	
			
			where1 = "4";
			
			obj1 = document.getElementById("CHECK1");
			
			if(obj1.checked)
			{
				for(i=0; i<8; i++)
				{	
					obj1 = document.getElementById(ships1[i]);
					obj1.disabled = true;
					obj1.value = "";
					obj1.style.backgroundColor = "c0c0c0";
				}	
			}
			else
			{
				for(i=0; i<8; i++)
				{	
					obj1 = document.getElementById(ships1[i]);
					obj1.disabled = false;
					obj1.style.backgroundColor = "ffffff";
				}	
			}
			
			obj1 = null;
		}
		
		where1 = "5";
		
		recalc1();
		
		where1 = "6";
		
		obj1 = document.getElementById("DOLLARS");
		obj1.value = "";
		
		where1 = "6a";
		
		for(i=0; i<10; i++)
		{
			obj1.value = obj1.value + sums[i]  + " ";
		}
		
		obj1 = document.getElementById("SHIPS");
		obj2 = document.getElementById("CHECK1");
		
		where1 = "7";

		if(obj2.checked)
		{
			obj2 = document.getElementById("BILLS");
			obj1.value = obj2.value;
		}
		
		where1 = "8";
		
		sum1 = 0.0;
		sum2 = 0.0;
		sum3 = 0.0;
		
		if(complain && obj1.value == "")
		{
			alert("Be sure to fill Ship-to info, so sales tax can be calculated.");
			obj1 = document.getElementById("salest");
			obj1.innerHTML = get2(0.0);
		}
		else if(obj1.value == "FL")
		{
			obj1 = document.getElementById("salest");
			obj2 = document.getElementById("CHECK2");
			
			if(obj2.checked)
				obj1.innerHTML = get2(0.0);
			else
				obj1.innerHTML = get2(sum1 = sum0*0.06);
		}
		else
		{
			obj1 = document.getElementById("salest");
			obj1.innerHTML = get2(0.0);
		}

		obj1 = document.getElementById("subt");
		obj1.innerHTML = get2(sum0);
		
		if(sum0 < 30.0)
		{
			sum2 = 6.95;	
		}
		else if(sum0 < 80.00)
		{
			sum2 = 8.00;	
		}
		else if(sum0 <= 0.0)
		{
			sum2 = 0.0;
		}
		else
		{
			sum2 = 0.09*sum0;	
		}
		
		sum3 = sum0 + sum1 + sum2;
		
		obj1 = document.getElementById("shipt");
		obj1.innerHTML = get2(sum2);
		
		obj1 = document.getElementById("total");
		obj1.innerHTML = get2(sum3);

		obj1 = document.getElementById("DOLLARS");
		
		for(i=0; i<10; i++)
		{
			obj1.value = obj1.value + costs[i]  + " ";
		}
				
		obj1.value = obj1.value + sum0 + " " + sum1 + " " + sum2 + " " + sum3;

		obj1 = document.getElementById("CHECKSI");
		obj2 = document.getElementById("CHECK1");
		obj1.value = obj2.checked? "1 ": "0 ";
		obj2 = document.getElementById("CHECK2");
		obj1.value = obj1.value + (obj2.checked? "1": "0");
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc2(): Error #" + where1;
	}	

	if(sum0 == 0.0 || complain == 0) return;

	try
	{
		var valid1, re;
		
		obj1 = document.getElementById("PHONE");
		re = /^\(?(\d{3})\)?\s?[\.\-\/]?(\d{3})[\.\-\/]?(\d{4})$/;
		valid1 = re.exec(obj1.value);
		if(valid1) obj1.value = "(" + valid1[1] + ") " + valid1[2] + "-" + valid1[3];
		else 
		{
			alert("Please put valid phone number.");
			return;
		}

		/* don't require valid fax */
		obj1 = document.getElementById("FAX");
		re = /^\(?(\d{3})\)?\s?[\.\-\/]?(\d{3})[\.\-\/]?(\d{4})$/;
		valid1 = re.exec(obj1.value);
		if(valid1) obj1.value = "(" + valid1[1] + ") " + valid1[2] + "-" + valid1[3];
		else obj1.value = "";
				
		obj1 = document.getElementById("EMAIL");
		re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
		valid1 = re.exec(obj1.value);
		if(valid1) ;
		else
		{
			alert("Please put valid email address.");
			return;
		}

		obj1 = document.getElementById("BILLZ");
		re = /^(\d{5})[\.\-\/]?(\d{4})?$/;
		valid1 = re.exec(obj1.value);
		
		if(valid1)
		{
			if(valid1[2]) obj1.value = valid1[1] + "-" + valid1[2];
			else obj1.value = valid1[1];
		}
		else 
		{
			alert("Please put valid Billing zip code.");
			return;
		}
				
		if(document.getElementById("FIRST").value == "")
		{
			alert("Please enter First Name");	
			return;
		}

		if(document.getElementById("LAST").value == "")
		{
			alert("Please enter Last Name");	
			return;
		}

		if(document.getElementById("BILL1").value == "")
		{
			alert("Please enter Billing Address");	
			return;
		}
		
		if(document.getElementById("BILLC").value == "")
		{
			alert("Please enter Billing City");	
			return;
		}

		if(document.getElementById("BILLS").value == "")
		{
			alert("Please enter Billing State");	
			return;
		}

		if(!document.getElementById("CHECK1").checked)
		{
			obj1 = document.getElementById("SHIPZ");
			re = /^(\d{5})[\.\-\/]?(\d{4})?$/;
			valid1 = re.exec(obj1.value);
			
			if(valid1)
			{
				if(valid1[2]) obj1.value = valid1[1] + "-" + valid1[2];
				else obj1.value = valid1[1];
			}
			else 
			{
				alert("Please put valid Shipping zip code.");
				return;
			}
					
			if(document.getElementById("FIRSTS").value == "")
			{
				alert("Please enter First Name (Shipping)");	
				return;
			}
	
			if(document.getElementById("LASTS").value == "")
			{
				alert("Please enter Last Name (Shipping)");	
				return;
			}
	
			if(document.getElementById("SHIP1").value == "")
			{
				alert("Please enter Shipping Address");	
				return;
			}
			
			if(document.getElementById("SHIPC").value == "")
			{
				alert("Please enter Shipping City");	
				return;
			}
	
			if(document.getElementById("SHIPS").value == "")
			{
				alert("Please enter Shipping State");	
				return;
			}
		}
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc2(): Error #2";
	}

	try
	{
		obj1 = document.getElementById("show1");
		if(obj1.innerHTML == ".") good = 1;
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc2(): Error #3";
	}
	
	if(done1) return;
	
	try
	{
		if(ran1 || good)
		{
			obj1 = document.getElementById("BUTT1");
			obj1.style.visibility = "visible";
			obj1 = document.getElementById("BUTT0");
			obj1.style.visibility = "visible";
			obj1 = document.getElementById("CALC1");
			obj1.value = "RE-CALCULATE";
			obj1 = null;
			done1++;
		}
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc2(): Error #4";
	}

	ran1++;
}

function recalc3()
{
	var obj1, i, e;
	
	try
	{
		if(done1)
		{
			obj1 = document.getElementById("BUTT1");
			obj1.style.visibility = "hidden";
			obj1 = document.getElementById("BUTT0");
			obj1.style.visibility = "hidden";
			done1 = 0;
			obj1 = document.getElementById("CALC1");
			obj1.value = "CALCULATE";
			obj1 = null;
		}
		
		singles1(1,1,1);	
		
		obj1 = document.getElementById("CHECK1");
		
		if(obj1.checked)
		{
			for(i=0; i<8; i++)
			{	
				obj1 = document.getElementById(ships1[i]);
				obj1.disabled = true;
				obj1.style.backgroundColor = "c0c0c0";
			}	
		}
		else
		{
			for(i=0; i<8; i++)
			{	
				obj1 = document.getElementById(ships1[i]);
				obj1.disabled = false;
				obj1.style.backgroundColor = "ffffff";
			}	
		}
	}
	catch(e)
	{
		obj1 = document.getElementById("show1");
		obj1.innerHTML = "recalc3(): Error #1";
	}
}




	
