
function CookiesAreEnabled() {
	SetCookie( "foo", "bar" );
	if ( ReturnCookie( "foo" ) ) {
		DeleteCookie( "foo" );
		return true;
	} else {
		return false;
	}
}

function SetCookie(c_name, c_val) {
	document.cookie = (c_name + "=" + escape(c_val) + "; path=/; domain=" + self.location.hostname.toLowerCase() + "; ");
}

function ReturnCookie(c_name) {
	var vFirst=0;
	var vLast=0;

	vFirst = document.cookie.indexOf(c_name + "=");

	vLast = document.cookie.indexOf(";", vFirst);
	if (vLast == -1)	//doesn't find ';'
	{
		vLast = document.cookie.length
	}
	if (vFirst == -1) { //didn't find
		return("")
	} else {
		vFirst += c_name.length + 1;
		return(unescape(document.cookie.substring(vFirst, vLast)));
	}
}

function DeleteCookie(c_name) {
	oldate = new Date();
	oldate.setYear(1976);
	document.cookie = (c_name + "=; expires=" + oldate.toGMTString() + "; path=/;");
}

function noCacheUrl(url) {
	var ret = url;
	if (ret.indexOf("?") != -1) {
		ret += "&";
	} else {
		ret += "?";
	}
	var d = new Date();
	ret += "NoCache=" + d.getTime();
	return ret;
}

function stringReplace(str, find, replace) {
	while (str.indexOf(find) != -1) {
		str = str.replace(find, replace);
	}
	return str;
}

function myGetElementById(id) {
	var elem = false;
	if (document.getElementById) {
		elem = document.getElementById(id)
	} else if (document.all) {
		elem = document.all[id]
	}
	return elem;
}

function setInnerHTMLById(html, id) {
	if (elem = myGetElementById(id)) {
		if (elem.innerHTML) {
			elem.innerHTML = html;
		}
	}
}
function innerHTMLById(id) {
	var ret = '';
	if (elem = myGetElementById(id)) {
		ret = elem.innerHTML;
	}
	return ret;
}

function setValueById(val, id) {
	if (elem = myGetElementById(id)) {
		elem.value = val;
	}
}
function valueById(id) {
	var ret = '';
	if (elem = myGetElementById(id)) {
		ret = elem.value;
	}
	return ret;
}

function setCheckedById(isIt, id) {
	if (elem = myGetElementById(id)) {
		elem.checked = isIt;
	}
}
function checkedById(id) {
	var ret = false;
	if (elem = myGetElementById(id)) {
		ret = elem.checked;
	}
	return ret;
}

function setSelectedIndexById(index, id) {
	if (elem = myGetElementById(id)) {
		elem.selectedIndex = index;
	}
}
function selectedIndexById(id) {
	var idx = 0;
	if (elem = myGetElementById(id)) {
		idx = elem.selectedIndex;
		if (idx < 0) {
			idx = 0;
		}
	}
	return idx;
}

function setSelectedValueById(val, id) {
	if (elem = myGetElementById(id)) {
		if (elem.options && elem.length)
		for (i=0; i<elem.length; i++) {
			if (elem.options[i].value == val) {
				elem.options[i].selected = true;
				elem.selectedIndex = i;
				break;
			}
		}
	}
}
function selectedValueById(id) {
	var ret = '';
	if (elem = myGetElementById(id)) {
		var idx = selectedIndexById(id);
		if (elem.options && elem.length > idx && elem.options[idx]) {
			ret = elem.options[idx].value;
		}
	}
	return ret;
}


function setSelectedTextById(val, id) {
	if (elem = myGetElementById(id)) {
		if (elem.options && elem.length)
		for (i=0; i<elem.length; i++) {
			if (elem.options[i].text == val) {
				elem.options[i].selected = true;
				elem.selectedIndex = i;
				break;
			}
		}
	}
}
function selectedTextById(id) {
	var ret = '';
	if (elem = myGetElementById(id)) {
		var idx = selectedIndexById(id);
		if (elem.options && elem.length > idx && elem.options[idx]) {
			ret = elem.options[idx].text;
		}
	}
	return ret;
}

function buildArray() {
	var a = buildArray.arguments;
	for (i=0; i<a.length; i++) {
		this[i] = a[i];
	}
	this.length = a.length;
}

function buildSelect(id, ar) {
	if (sel = myGetElementById(id)) {
		for (i=0; i<ar.length; i++) {
			sel.options[i] = ar[i];
		}
		sel.options.length = ar.length;
	}
}
function buildSelectWVal(id, ar, val) {
	buildSelect(id, ar);
	setSelectedValueById(val, id);
}
function buildSelectWText(id, ar, txt) {
	buildSelect(id, ar);
	setSelectedTextById(txt, id);
}

function buildPop(sel, ar, selectedValue) {
	var i, s = 0;
	if (sel && ar) {
		for (i=0; i<ar.length; i++) {
			opt = new Option(ar[i]);
			sel.options[i] = opt;
			if (selectedValue == ar[i]) {
				s = i;
			}
		}
		sel.options.length = ar.length;
		sel.options[s].selected = true;
		sel.options[s].defaultSelected = true;
		sel.selectedIndex = s;
	}
}

function RoundUp(num, dec) {
// num - the number to round, dec - number of decimal spaces to round to
	var i, factor = 1 ;
	for (i=0 ; i < dec ; i++) {
		factor *= 10 ;
	}
	return((Math.ceil(num * factor) / factor))
}

function RoundIt(num, dec) {
// num - the number to round, dec - number of decimal spaces to round to
	var i, factor = 1 ;
	for (i=0 ; i < dec ; i++) {
		factor *= 10 ;
	}
	return((Math.round(num * factor) / factor))
}

function RoundUpToCent(what) {
	var str = Math.ceil(100 * what).toString();
	if (str.length < 2) {
		str = ".0" + str;
	} else {
		str = str.substring(0,str.length-2) + "." + str.substring(str.length-2);
	}
	return(parseFloat(str));
}

function RoundToCent(what) {
	var str = Math.round(100 * what).toString();
	if (str.length < 2) {
		str = ".0" + str;
	} else {
		str = str.substring(0,str.length-2) + "." + str.substring(str.length-2);
	}
	return(parseFloat(str));
}

function CashFormat(what) {
	var i, cents, bucks;
	
	what = parseFloat(what).toString();

	i = what.indexOf(".");	// find . in price
	if (i < 0)	{ // no . in price
		cents = "00";
		bucks = what;
	}
	if (i == 0) {	// . is 1st char
		what = "0" + what;
		i++;
	}
	if (i > 0) {
		cents = what.substring(i+1);
		bucks = what.substring(0, i);
		if (cents.length < 2)	// add extra 0 if needed
			cents += "0";
	}
	if (bucks.length > 4) {	// add commas
		var j, bucks2="";
		for (j=bucks.length;j-3>0;j-=3) {
			bucks2 = "," + bucks.substring(j-3,j) + bucks2;
		}
		bucks2 = bucks.substring(0,j) + bucks2;
		bucks = bucks2;
	}
	return(bucks +"."+ cents);
}


function convert2Fraction(num) {
	// whole part of the number;
	var hol = Math.floor(num);
	// get just the decimal part
	var dec = num - hol;
	var ret = "";
	if (hol > 0) {
		ret = hol.toString() + " ";
	}
	if (dec == .0625) {
		ret += "1/16";
	} else if (dec == .125) {
		ret += "1/8";
	} else if (dec == .1875) {
		ret += "3/16";
	} else if (dec == .25) {
		ret += "1/4";
	} else if (dec == .3125) {
		ret += "5/16";
	} else if (dec == .375) {
		ret += "3/8";
	} else if (dec == .4375) {
		ret += "7/16";
	} else if (dec == .5) {
		ret += "1/2";
	} else if (dec == .5625) {
		ret += "9/16";
	} else if (dec == .625) {
		ret += "5/8";
	} else if (dec == .6875) {
		ret += "11/16";
	} else if (dec == .75) {
		ret += "3/4";
	} else if (dec == .8125) {
		ret += "13/16";
	} else if (dec == .875) {
		ret += "7/8";
	} else if (dec == .9375) {
		ret += "15/16";
	} else {
		ret = num;
	}
	return ret;
}


function FocusWin(daWin) {
	if (navigator.appName == "Netscape") // NS3,4
		daWin.focus();
//	else	// IE4
//		daWin.location.reload(true);
}

function ViewOrder() {
// 	var d = new Date();
// 	OrderWin = window.open("/Order/index.php", ("Order"+d.getTime()), "status,menubar,toolbar,scrollbars,resizable,width=620,height=350");
	location.href = "/Order/index.php"; // popup windows suck
}

function ClickOrder(link) {
// 	var d = new Date();
// 	OrderWin = window.open(link.href, ("Order"+d.getTime()), "status,menubar,toolbar,scrollbars,resizable,width=620,height=350");
// 	return false ;
	return true; // kill that open new window crap
}

var error_count=0;

function ReportError(msg, url, line) {
	var w = window.open("",											// url (none)
						"error"+error_count++,						// name (forced unique)
						"resizable,status,width=625,height=400");	// features
	var d = w.document;	// alias
	
	d.write('<DIV align=center>');
	d.write('<H1>A JavaScript Error Has Occurred!</H1><HR>');
	d.write('<FORM ACTION="http://www.electroniceasel.com/*Mail_No" METHOD=post ENCTYPE="text/plain">');
	d.write('<INPUT TYPE="submit" VALUE="Report Error">&nbsp;&nbsp;');
	d.write('<INPUT TYPE="button" VALUE="Dismiss" onClick="self.close()">');
	d.write('</DIV><center><table>');
	d.write('<tr><td align=right>Your name: </td><td><input size=42 name="name" value=""></td></tr>');
	d.write('<tr><td align=right>Your e-mail address: </td><td><input size=42 name="email" value=""></td></tr>');
	d.write('<tr><td align=right>Error Message: </td><td><input size=42 name="message" value="' + msg + '"></td></tr>');
	d.write('<tr><td align=right>Document: </td><td><input size=42 name="url" value="' + url + '"></td></tr>');
	d.write('<tr><td align=right>Line Number: </td><td><input size=42 name="line" value="' + line + '"></td></tr>');
	d.write('<tr><td align=right>Browser Version: </td><td><input size=42 name="version" value="' + navigator.userAgent + '"></td></tr>');
	d.write('</table></center></FORM>');
	d.close();
	return true;	// so javaScript doesn't do its own error thing
}

