
function getCookie (cookieName) {
	var regX = new RegExp("\\b" + cookieName + "=([^;]*)");
	var found = regX.exec(document.cookie);
	return (found) ? found[1] : "";
}

function setCookie (name, value, expires, domain, path, secure) {
	var cstr = escape(name) + "=" + escape(value);

	if (expires>0) {
		var expdate = new Date();
		expdate.setDate(expdate.getDate() + expires);
		expdate = expdate.toGMTString();
		cstr+="; expires=" + expdate;
	}

	if(domain) cstr+="; domain=" + domain;
	if(path || path=="") cstr+="; path=" + path;
	if(secure) cstr+="; secure";

	document.cookie = cstr;
}

function deleteCookie(name) {
	var exp = new Date();
	exp.setTime(exp.getTime() - 1000 * 60 * 60 * 24);
	document.cookie = name + "=" + escape(name) + "; expires=" + exp.toGMTString();
}

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function computeAustCoins(form) { // this function calculates total values
	// grams
	var pre3gmtotal = form.pre3gm.value*form.pre3qty.value;
	var pre6gmtotal = form.pre6gm.value*form.pre6qty.value;
	var pre12gmtotal = form.pre12gm.value*form.pre12qty.value;
	var pre24gmtotal = form.pre24gm.value*form.pre24qty.value;
	var pre60gmtotal = form.pre60gm.value*form.pre60qty.value;
	var post3gmtotal = form.post3gm.value*form.post3qty.value;
	var post6gmtotal = form.post6gm.value*form.post6qty.value;
	var post12gmtotal = form.post12gm.value*form.post12qty.value;
	var post24gmtotal = form.post24gm.value*form.post24qty.value;
	var round50gmtotal = form.round50gm.value*form.round50qty.value;
	var tendollargmtotal = form.tendollargm.value*form.tendollarqty.value;
	var tenpiedfortgmtotal = form.tenpiedfortgm.value*form.tenpiedfortqty.value;
	var tenolympicgmtotal = form.tenolympicgm.value*form.tenolympicqty.value;
	// calculate oz
	var pre3oztotal = form.pre3oz.value*form.pre3qty.value;
	var pre6oztotal = form.pre6oz.value*form.pre6qty.value;
	var pre12oztotal = form.pre12oz.value*form.pre12qty.value;
	var pre24oztotal = form.pre24oz.value*form.pre24qty.value;
	var pre60oztotal = form.pre60oz.value*form.pre60qty.value;
	var post3oztotal = form.post3oz.value*form.post3qty.value;
	var post6oztotal = form.post6oz.value*form.post6qty.value;
	var post12oztotal = form.post12oz.value*form.post12qty.value;
	var post24oztotal = form.post24oz.value*form.post24qty.value;
	var round50oztotal = form.round50oz.value*form.round50qty.value;
	var tendollaroztotal = form.tendollaroz.value*form.tendollarqty.value;
	var tenpiedfortoztotal = form.tenpiedfortoz.value*form.tenpiedfortqty.value;
	var tenolympicoztotal = form.tenolympicoz.value*form.tenolympicqty.value;
	// set subtotals into form
	form.pre3total.value = this.roundNumber(pre3oztotal,2);
	form.pre6total.value = this.roundNumber(pre6oztotal,2);
	form.pre12total.value = this.roundNumber(pre12oztotal,2);
	form.pre24total.value = this.roundNumber(pre24oztotal,2);
	form.pre60total.value = this.roundNumber(pre60oztotal,2);
	form.post3total.value = this.roundNumber(post3oztotal,2);
	form.post6total.value = this.roundNumber(post6oztotal,2);
	form.post12total.value = this.roundNumber(post12oztotal,2);
	form.post24total.value = this.roundNumber(post24oztotal,2);
	form.round50total.value = this.roundNumber(round50oztotal,2);
	form.tendollartotal.value = this.roundNumber(tendollaroztotal,2)
	form.tenpiedforttotal.value = this.roundNumber(tenpiedfortoztotal,2);
	form.tenolympictotal.value = this.roundNumber(tenolympicoztotal,2);;
	// calculate totals
 	var ozresult = pre3oztotal + pre6oztotal + pre12oztotal + pre24oztotal + pre60oztotal + post3oztotal + post6oztotal + post12oztotal + post24oztotal + round50oztotal + tendollaroztotal + tenpiedfortoztotal + tenolympicoztotal;
	var gmresult = pre3gmtotal + pre6gmtotal + pre12gmtotal + pre24gmtotal + pre60gmtotal + post3gmtotal + post6gmtotal + post12gmtotal + post24gmtotal + round50gmtotal + tendollargmtotal + tenpiedfortgmtotal + tenolympicgmtotal;
	var spotvalue = ozresult * form.spot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.gmresult.value  = this.roundNumber(gmresult,0);
	form.spotvalue.value  = this.roundNumber(spotvalue,2);
	return;
}

function computeAustWeight(form) { // this function calculates total values
	// calculate oz from grams
	var preoztotal = form.preozkg.value*form.preqty.value/1000;
	var postoztotal = form.postozkg.value*form.postqty.value/1000;
	var roundoztotal = form.roundozkg.value*form.roundqty.value/1000;
	// set subtotals into form
	form.pretotal.value = this.roundNumber(preoztotal,2);
	form.posttotal.value = this.roundNumber(postoztotal,2);
	form.roundtotal.value = this.roundNumber(roundoztotal,2);
	// calculate totals
 	var ozresult = preoztotal + postoztotal + roundoztotal;
	var spotvalue = ozresult * form.spot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.spotvalue.value  = this.roundNumber(spotvalue,2);
	return;
}

function computeUSACoins(form) { // this function calculates total values
	// grams
	var usa_90_100a_gmtotal = form.usa_90_100a_gm.value*form.usa_90_100a_qty.value;
	var usa_90_100b_gmtotal = form.usa_90_100b_gm.value*form.usa_90_100b_qty.value;
	var usa_90_50a_gmtotal = form.usa_90_50a_gm.value*form.usa_90_50a_qty.value;
	var usa_90_50b_gmtotal = form.usa_90_50b_gm.value*form.usa_90_50b_qty.value;
	var usa_90_50c_gmtotal = form.usa_90_50c_gm.value*form.usa_90_50c_qty.value;
	var usa_90_50d_gmtotal = form.usa_90_50d_gm.value*form.usa_90_50d_qty.value;
	var usa_90_25a_gmtotal = form.usa_90_25a_gm.value*form.usa_90_25a_qty.value;
	var usa_90_25b_gmtotal = form.usa_90_25b_gm.value*form.usa_90_25b_qty.value;
	var usa_90_25c_gmtotal = form.usa_90_25c_gm.value*form.usa_90_25c_qty.value;
	var usa_90_10a_gmtotal = form.usa_90_10a_gm.value*form.usa_90_10a_qty.value;
	var usa_90_10b_gmtotal = form.usa_90_10b_gm.value*form.usa_90_10b_qty.value;
	var usa_90_10c_gmtotal = form.usa_90_10c_gm.value*form.usa_90_10c_qty.value;
	var usa_40_50a_gmtotal = form.usa_40_50a_gm.value*form.usa_40_50a_qty.value;
	var usa_35_5a_gmtotal = form.usa_35_5a_gm.value*form.usa_35_5a_qty.value;
	// calculate oz
	var usa_90_100a_oztotal = form.usa_90_100a_oz.value*form.usa_90_100a_qty.value;
	var usa_90_100b_oztotal = form.usa_90_100b_oz.value*form.usa_90_100b_qty.value;
	var usa_90_50a_oztotal = form.usa_90_50a_oz.value*form.usa_90_50a_qty.value;
	var usa_90_50b_oztotal = form.usa_90_50b_oz.value*form.usa_90_50b_qty.value;
	var usa_90_50c_oztotal = form.usa_90_50c_oz.value*form.usa_90_50c_qty.value;
	var usa_90_50d_oztotal = form.usa_90_50d_oz.value*form.usa_90_50d_qty.value;
	var usa_90_25a_oztotal = form.usa_90_25a_oz.value*form.usa_90_25a_qty.value;
	var usa_90_25b_oztotal = form.usa_90_25b_oz.value*form.usa_90_25b_qty.value;
	var usa_90_25c_oztotal = form.usa_90_25c_oz.value*form.usa_90_25c_qty.value;
	var usa_90_10a_oztotal = form.usa_90_10a_oz.value*form.usa_90_10a_qty.value;
	var usa_90_10b_oztotal = form.usa_90_10b_oz.value*form.usa_90_10b_qty.value;
	var usa_90_10c_oztotal = form.usa_90_10c_oz.value*form.usa_90_10c_qty.value;
	var usa_40_50a_oztotal = form.usa_40_50a_oz.value*form.usa_40_50a_qty.value;
	var usa_35_5a_oztotal = form.usa_35_5a_oz.value*form.usa_35_5a_qty.value;
	// set subtotals into form
	form.usa_90_100a_total.value = this.roundNumber(usa_90_100a_oztotal,2);
	form.usa_90_100b_total.value = this.roundNumber(usa_90_100b_oztotal,2);
	form.usa_90_50a_total.value = this.roundNumber(usa_90_50a_oztotal,2);
	form.usa_90_50b_total.value = this.roundNumber(usa_90_50b_oztotal,2);
	form.usa_90_50c_total.value = this.roundNumber(usa_90_50c_oztotal,2);
	form.usa_90_50d_total.value = this.roundNumber(usa_90_50d_oztotal,2);
	form.usa_90_25a_total.value = this.roundNumber(usa_90_25a_oztotal,2);
	form.usa_90_25b_total.value = this.roundNumber(usa_90_25b_oztotal,2);
	form.usa_90_25c_total.value = this.roundNumber(usa_90_25c_oztotal,2);
	form.usa_90_10a_total.value = this.roundNumber(usa_90_10a_oztotal,2);
	form.usa_90_10b_total.value = this.roundNumber(usa_90_10b_oztotal,2);
	form.usa_90_10c_total.value = this.roundNumber(usa_90_10c_oztotal,2);
	form.usa_40_50a_total.value = this.roundNumber(usa_40_50a_oztotal,2);
	form.usa_35_5a_total.value = this.roundNumber(usa_35_5a_oztotal,2);
	// calculate totals
 	var ozresult = usa_90_100a_oztotal + usa_90_100b_oztotal + usa_90_50a_oztotal + usa_90_50b_oztotal + usa_90_50c_oztotal + usa_90_50d_oztotal + usa_90_25a_oztotal + usa_90_25b_oztotal + usa_90_25c_oztotal + usa_90_10a_oztotal + usa_90_10b_oztotal + usa_90_10c_oztotal + usa_40_50a_oztotal + usa_35_5a_oztotal;
	var gmresult = usa_90_100a_gmtotal + usa_90_100b_gmtotal + usa_90_50a_gmtotal + usa_90_50b_gmtotal + usa_90_50c_gmtotal + usa_90_50d_gmtotal + usa_90_25a_gmtotal + usa_90_25b_gmtotal + usa_90_25c_gmtotal + usa_90_10a_gmtotal + usa_90_10b_gmtotal + usa_90_10c_gmtotal + usa_40_50a_gmtotal + usa_35_5a_gmtotal;
	var spotvalue = ozresult * form.spot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.gmresult.value  = this.roundNumber(gmresult,0);
	form.spotvalue.value  = this.roundNumber(spotvalue,2);
	return;
}

function computeUSAWeight(form) { // this function calculates total values
	// calculate oz from grams
	var preoztotal = form.preozkg.value*form.preqty.value/1000;
	var kennedyoztotal = form.kennedyozkg.value*form.kennedyqty.value/1000;
	var wartimeoztotal = form.wartimeozkg.value*form.wartimeqty.value/1000;
	// set subtotals into form
	form.pretotal.value = this.roundNumber(preoztotal,2);
	form.kennedytotal.value = this.roundNumber(kennedyoztotal,2);
	form.wartimetotal.value = this.roundNumber(wartimeoztotal,2);
	// calculate totals
 	var ozresult = preoztotal + kennedyoztotal + wartimeoztotal;
	var spotvalue = ozresult * form.spot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.spotvalue.value  = this.roundNumber(spotvalue,2);
	return;
}

function computeUSAFace(form) { // this function calculates total values
	// calculate oz from grams
	var dollaroztotal = form.dollaroz100.value*form.dollarface.value;
	var preoztotal = form.preoz100.value*form.preface.value;
	var kennedyoztotal = form.kennedyoz100.value*form.kennedyface.value;
	var wartimeoztotal = form.wartimeoz100.value*form.wartimeface.value;
	// set subtotals into form
	form.dollartotal.value = this.roundNumber(dollaroztotal,2);
	form.pretotal.value = this.roundNumber(preoztotal,2);
	form.kennedytotal.value = this.roundNumber(kennedyoztotal,2);
	form.wartimetotal.value = this.roundNumber(wartimeoztotal,2);
	// calculate totals
 	var ozresult = dollaroztotal + preoztotal + kennedyoztotal + wartimeoztotal;
	var spotvalue = ozresult * form.spot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.spotvalue.value  = this.roundNumber(spotvalue,2);
	return;
}

function computeAustGoldCoins(form) { // this function calculates total values
	// grams
	var g22k_halfsov_gm_total = form.g22k_halfsov_gm.value*form.g22k_halfsov_qty.value;
	var g22k_fullsov_gm_total = form.g22k_fullsov_gm.value*form.g22k_fullsov_qty.value;
	var g22k_200koala_gm_total = form.g22k_200koala_gm.value*form.g22k_200koala_qty.value;
	var g24k_100olympic_gm_total = form.g24k_100olympic_gm.value*form.g24k_100olympic_qty.value;
	var g24k_025_gm_total = form.g24k_025_gm.value*form.g24k_025_qty.value;
	var g24k_020_gm_total = form.g24k_020_gm.value*form.g24k_020_qty.value;
	var g24k_010_gm_total = form.g24k_010_gm.value*form.g24k_010_qty.value;
	var g24k_05_gm_total = form.g24k_05_gm.value*form.g24k_05_qty.value;
	var g24k_04_gm_total = form.g24k_04_gm.value*form.g24k_04_qty.value;
	var g24k_02_gm_total = form.g24k_02_gm.value*form.g24k_02_qty.value;
	var g24k_1_gm_total = form.g24k_1_gm.value*form.g24k_1_qty.value;
	var g24k_2_gm_total = form.g24k_2_gm.value*form.g24k_2_qty.value;
	// calculate oz
	var g22k_halfsov_oz_total = form.g22k_halfsov_oz.value*form.g22k_halfsov_qty.value;
	var g22k_fullsov_oz_total = form.g22k_fullsov_oz.value*form.g22k_fullsov_qty.value;
	var g22k_200koala_oz_total = form.g22k_200koala_oz.value*form.g22k_200koala_qty.value;
	var g24k_100olympic_oz_total = form.g24k_100olympic_oz.value*form.g24k_100olympic_qty.value;
	var g24k_025_oz_total = form.g24k_025_oz.value*form.g24k_025_qty.value;
	var g24k_020_oz_total = form.g24k_020_oz.value*form.g24k_020_qty.value;
	var g24k_010_oz_total = form.g24k_010_oz.value*form.g24k_010_qty.value;
	var g24k_05_oz_total = form.g24k_05_oz.value*form.g24k_05_qty.value;
	var g24k_04_oz_total = form.g24k_04_oz.value*form.g24k_04_qty.value;
	var g24k_02_oz_total = form.g24k_02_oz.value*form.g24k_02_qty.value;
	var g24k_1_oz_total = form.g24k_1_oz.value*form.g24k_1_qty.value;
	var g24k_2_oz_total = form.g24k_2_oz.value*form.g24k_2_qty.value;
	// set subtotals into form
	form.g22k_halfsov_oz_total.value = this.roundNumber(g22k_halfsov_oz_total,2);
	form.g22k_fullsov_oz_total.value = this.roundNumber(g22k_fullsov_oz_total,2);
	form.g22k_200koala_oz_total.value = this.roundNumber(g22k_200koala_oz_total,2);
	form.g24k_100olympic_oz_total.value = this.roundNumber(g24k_100olympic_oz_total,2);
	form.g24k_025_oz_total.value = this.roundNumber(g24k_025_oz_total,2);
	form.g24k_020_oz_total.value = this.roundNumber(g24k_020_oz_total,2);
	form.g24k_010_oz_total.value = this.roundNumber(g24k_010_oz_total,2);
	form.g24k_05_oz_total.value = this.roundNumber(g24k_05_oz_total,2);
	form.g24k_04_oz_total.value = this.roundNumber(g24k_04_oz_total,2);
	form.g24k_02_oz_total.value = this.roundNumber(g24k_02_oz_total,2);
	form.g24k_1_oz_total.value = this.roundNumber(g24k_1_oz_total,2);
	form.g24k_2_oz_total.value = this.roundNumber(g24k_2_oz_total,2);
	// calculate totals
 	var ozresult = g22k_halfsov_oz_total + g22k_fullsov_oz_total + g22k_200koala_oz_total + g24k_100olympic_oz_total + g24k_025_oz_total + g24k_020_oz_total + g24k_010_oz_total + g24k_05_oz_total + g24k_04_oz_total + g24k_02_oz_total + g24k_1_oz_total + g24k_2_oz_total;
	var gmresult = g22k_halfsov_gm_total + g22k_fullsov_gm_total + g22k_200koala_gm_total + g24k_100olympic_gm_total + g24k_025_gm_total + g24k_020_gm_total + g24k_010_gm_total + g24k_05_gm_total + g24k_04_gm_total + g24k_02_gm_total + g24k_1_gm_total + g24k_2_gm_total;
	var goldspotvalue = ozresult * form.goldspot.value;
	// set totals into bottom of form
	form.ozresult.value  = this.roundNumber(ozresult,2);
	form.gmresult.value  = this.roundNumber(gmresult,0);
	form.goldspotvalue.value  = this.roundNumber(goldspotvalue,2);
	return;
}

function computeAGW(form) { // this function calculates actual gold weight
	// calculate oz from grams
	var gold_oz = form.gold_grams.value*(form.gold_karat.value/24)/31.1034768;
	// set subtotals into form
	form.gold_oz.value = this.roundNumber(gold_oz,4);
	// calculate totals
	var goldspotvalue = gold_oz * form.goldspot.value;
	// set totals into bottom of form;
	form.goldspotvalue.value  = this.roundNumber(goldspotvalue,2);
	return;
}
