function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function highlightField(obj,bln) { //changes the background color of a field onfocus and onblur
	if(obj.style) {
		if(highlightField.arguments[2]==null) {
			highlightColor="#FDF3D5";
		}
		if(highlightField.arguments[3]==null) {
			lowlightColor="#ffffff";
		}
		if(bln) { obj.style.backgroundColor=highlightColor }
		else { obj.style.backgroundColor=lowlightColor }
	}
} //highlightField(obj,bln,highlightColor,lowlightColor)

function focusFirst() {
	if(document.forms[0]) { document.forms[0].elements[0].focus(); }
}

function clearSearchBox(obj,textToClear) {
	if(obj.value == textToClear) {
		obj.value = '';	
	}
}

function checkFieldLength(str) {
		if(str.length==0) { return false; }
		else { return true; }
}

function checkValidEmail(str) {
		result = /(\S+)@{1}/.test(str);
		return result;
}

function validateForm(objForm) {
	validationMessage = "";
	elementArr = objForm.elements;
	for(i=0;i<elementArr.length;i++) {
		elementName=elementArr[i].name;
		//check for required
		validationName = elementName + "_required";
		if(elementArr[validationName]) { 
			if(!checkFieldLength(elementArr[elementName].value)) {
				if(validationMessage.length==0) {
						validationMessage="Your form could not be submitted for the following reasons:\n";
						elementArr[elementName].focus();
					}
				validationMessage = validationMessage + "\n - " + elementArr[validationName].value;
				highlightField(elementArr[elementName],true,highlightColor='#E7C9C9');
			}
		}
		
		//check for valid Email
		validationName = elementName + "_validEmail";
		if(elementArr[validationName]) { 
			if(checkFieldLength(elementArr[elementName].value)) {
				if(!checkValidEmail(elementArr[elementName].value)) {
					if(validationMessage.length==0) {
							validationMessage="Your form could not be submitted for the following reasons:\n";
							elementArr[elementName].focus();
						}
					validationMessage = validationMessage + "\n - " + elementArr[validationName].value;
					highlightField(elementArr[elementName],true,highlightColor='#E7C9C9');
				}
			}
		}
	}
	if(validationMessage.length>0) { 
		alert(validationMessage);
		return false; 
	}
	else { 	return true; }
	
}

function popupWindow(location,width,height) {
	eval("open(location,'popup','width="+width+",height="+height+",scrollbars=no')");
}

/* Phone Reformat Functions */
function stripCharsNotInBag (s, bag)
{ 
	var i;var returnString = "";
    for (i = 0; i < s.length; i++) { var c = s.charAt(i); if (bag.indexOf(c) != -1) returnString += c; }
    return returnString;
}

function reformat (s)
{   
	var arg;var sPos = 0;var resultString = "";
    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    } 
    return resultString;
}

function ReformatUSPhone(USPhone)
{   
	if (USPhone.length < 10) { return USPhone; }
	USPhone = stripCharsNotInBag (USPhone, "1234567890");
	return (reformat (USPhone, "(", 3, ") ", 3, "-", 4));
}

function setShippingRate(method) {
	var obj=MM_findObj("shippingAmount");
	var totalObj=MM_findObj("totalAmount");
	total= new Number(subtotal+arrShippingRates[method]);
	if(obj.innerHTML) { //if the browser is DOM compatible
		obj.innerHTML=currencySign+arrShippingRates[method].toFixed(2);
		totalObj.innerHTML=currencySign+total.toFixed(2);
	}
	else { //if the browser is not DOM compatible
		alert("Shipping Costs\n\nShipping Rate: "+currencySign+arrShippingRates[method].toFixed(2)+"\nSubtotal: "+currencySign+subtotal.toFixed(2)+"\n-------------\nTotal: "+currencySign+total.toFixed(2));
	}
}

//set default status to blank
defaultStatus = '';

//hide javascript messages from the user
function hide_error(msg, url, line) { return true; }
//window.onerror = hide_error;