

/* Used on orderFilter page to blank out all other filter fields */
function clearOtherFields(fieldName) {
	var fieldArray = new Array('OrderID','CustLastName','CustEmail','OrderDate','OrderDateFrom','OrderDateTo');	
	for (i = 0; i < fieldArray.length; i++) {
		var thisField = document.getElementById(fieldArray[i])
		if (fieldName != thisField.name) {
			if (fieldName != 'OrderDateTo') {
				MM_setTextOfTextfield(thisField.name,'','');
			}
		}	
	}
}

//Function to clear all entries in current form
function clearForm(formIdent) 
{ 
  var form, elements, i, elm; 
  form = document.getElementById 
    ? document.getElementById(formIdent) 
    : document.forms[formIdent]; 

	if (document.getElementsByTagName)
	{
		// Deal with all INPUT elements
		elements = form.getElementsByTagName('input');
		for( i=0, elm; elm=elements.item(i++); )
		{
			if (elm.getAttribute('type') == "text")
			{
				elm.value = '';
			} 
			else if (elm.getAttribute('type') == "radio")
			{
				elm.checked = false;
			}
			else if (elm.getAttribute('type') == "checkbox")
			{
				elm.checked = false;
			}
		}
		
		// Deal with all SELECT elements
		elements = form.getElementsByTagName('select');
		for( i=0, elm; elm=elements.item(i++); )
		{
				elm.selectedIndex = 0;
		}
		
		// Deal with all TEXTAREA elements
		elements = form.getElementsByTagName('textarea');
		for( i=0, elm; elm=elements.item(i++); )
		{
				elm.value = '';
		}
	}

	// Actually looking through more elements here
	// but the result is the same.
	else
	{
		elements = form.elements;
		for( i=0, elm; elm=elements[i++]; )
		{
			if (elm.type == "text")
			{
				elm.value ='';
			}
			else if (elm.type == "radio")
			{
				elm.checked = false;
			}
			else if (elm.type == "checkbox")
			{
				elm.checked = false;
			}
			else if (elm.type == "select")
			{
				elm.selectedIndex = 0;
			}
			else if (elm.type == "textarea")
			{
				elm.value = '';
			}
		}
	}
}

// Function to ensure that "Other" field--such as region or other country--
// is filled in if the value selected in the main "Select" field--such as State or Country--is Other.
// Variables needed: form name, field names
function checkOther(Form,OtherField,SelectField,msg) {
  // determine the length of the value of the field
  var length = eval("document." + Form + "." + OtherField + ".value.length");
  var Selected = eval("document." + Form + "." + SelectField + ".selectedIndex");
  // If the length of the value of the "Other" field is 0,
  // check "Select" field
  if (length == 0) {	  
	  // If index is 1, Other is selected, so return False
	  if (Selected == 1 || Selected == 0) {
		alert(msg);
		return false;
	  }
  } else {
	  	eval("document." + Form + "." + SelectField + ".selectedIndex = 1");
  }	  
}

function setPayerFields(form) {
	if (form.payerIsSame.checked) {
		form.payerAddr1.value = form.hidCustAddr1.value;
		form.payerAddr2.value = form.hidCustAddr2.value;
		form.payerCity.value = form.hidCustCity.value;
		form.payerState.value = form.hidCustState.value;
		form.payerStateOther.value = form.hidCustStateOther.value;
		form.payerPostal.value = form.hidCustPostal.value;
		form.payerCountry.value = form.hidCustCountry.value;
		form.payerCountryOther.value = form.hidCustCountryOther.value;
		form.payerPhone.value = form.hidCustPhone.value;
	} 
	else {
		form.payerAddr1.value = "";
		form.payerAddr2.value = "";
		form.payerCity.value = "";
		form.payerState.value = "";
		form.payerStateOther.value = "";
		form.payerPostal.value = "";
		form.payerCountry.value = "";
		form.payerCountryOther.value = "";
		form.payerPhone.value = "";
	}
}

function setShipFields(form) {
	if (form.shipIsSame.checked) {
		form.recipFirstName.value = form.hidCustFirstName.value;
		form.recipLastName.value = form.hidCustLastName.value;
		form.recipAddr1.value = form.hidCustAddr1.value;
		form.recipAddr2.value = form.hidCustAddr2.value;
		form.recipCity.value = form.hidCustCity.value;
		form.recipState.value = form.hidCustState.value;
		form.recipStateOther.value = form.hidCustStateOther.value;
		form.recipPostal.value = form.hidCustPostal.value;
		form.recipCountry.value = form.hidCustCountry.value;
		form.recipCountryOther.value = form.hidCustCountryOther.value;
		form.recipPhone.value = form.hidCustPhone.value;
	} 
	else {
		form.recipFirstName.value = "";
		form.recipLastName.value = "";
		form.recipAddr1.value = "";
		form.recipAddr2.value = "";
		form.recipCity.value = "";
		form.recipState.value = "";
		form.recipStateOther.value = "";
		form.recipPostal.value = "";
		form.recipCountry.value = "USA";
		form.recipCountryOther.value = "";
		form.recipPhone.value = "";
	}
}

// Function to ensure that a value in a select box
// is selected
// Variables needed: form name, field name
function checkSelect(Form,Field,AlertField,msg) {
  // Determine the index of the item currently
  // selected
  var itemSelected = eval("document." + Form + "." +
    Field + ".selectedIndex");
  // If that index is 0, return false
  if (itemSelected == 0) {
    alert("Please choose a " + AlertField + ". " + msg);	
    return false;
  } 
}

  // filling a var with the initial values, on loading the page
  // (this function has to be called by onLoad() in the <body>-tag
function setInitFormValues()
{
   initFormValues = compareValues();
}

  // filling another var with the values, on leaving the page, so we can compare them
  // (it will be triggered by the onbeforeunload event (see below)
function checkValues()
{
   if (initFormValues == compareValues())
   {
       // apparently, nothing has changed
      return;
   }
   else
   {
       // apparently, changes have been made
      return 'Your changes will not be saved.';
   }
}

  // this functions builds a string of all the values in the forms
function compareValues()
{
   var formValues = '';
   if (document.forms[0])
   {
      for (f=0;f<document.forms.length;f++)
      {
         for (x=0;x<document.forms[f].length;x++)
         {
            if (document.forms[f].elements[x].type != 'checkbox' && document.forms[f].elements[x].type != 'radio')
            {
               //if (inArray(document.forms[f].elements[x].name, skipNames))
              // {
                  // these elements are not to be included in the combined form-values
                  // so, any change made to them by the user won't result in the alert
              // }
               //else
              // {
                  // alert(document.forms[f].elements[x].name+' '+document.forms[f].elements[x].value);
                  formValues = formValues+document.forms[f].elements[x].value;
              // }
            }
            else
            {
                // we're dealing with a checkox or radiobutton
               formValues = formValues+document.forms[f].elements[x].checked;
            }
         }
      }
   }
   return formValues;
}

function inArray(needle, haystack)
{
   for (var i in haystack)
   {
      if (needle == haystack[i])
         return true;
   }
}

 // of course, if the form is being submitted, we don't want the alert to be triggered.
  // so, instead of using the normal submit-button, create one that calls this function
function submitForm(formName)
{
   if (document.forms[formName])
   {
      window.onbeforeunload = null;
      document.forms[formName].submit();
   }
}

function getHelp(appRoot,helpTopic) { 
	var features = 	"width=320,height=300,location=0,scrollbars=0,resizable=0";
	var helpURL = 	appRoot + "/help/index.cfm" + "?topic=" + helpTopic + "&showHeadFoot=false";
  	newWindow = window.open(helpURL,'help',features);
  	newWindow.focus();
}

function formatNum(expr,decplaces) {
	var str = (Math.round(parseFloat(expr) * Math.pow(10,decplaces))).toString();
	while (str.length <= decplaces) {
		str = "0" + str;
	} 
	var decpoint = str.length - decplaces;
	return str.substring(0,decpoint) + "." + str.substring(decpoint,str.length);
}
      

function formatMoney(theAmount) {
	var pos = theAmount.toString().indexOf('.');
	var formattedAmount = theAmount.toString();
	if (pos == -1) {
		formattedAmount = formattedAmount + ".00";
	}
	else if (pos == formattedAmount.length - 2) {
		formattedAmount = formattedAmount + "0";
	}
	else if (pos < formattedAmount.length - 3) {
		formattedAmount = formattedAmount.substring(0, pos + 3);
	}
	return formattedAmount; 
}

function cancelAndConfirm(siteHost, returnPage) {
	var newURL;
	var fRet;
	newURL = 'http://' + siteHost + returnPage;
	fRet = confirm('Are you sure you want to leave this page? Your changes will not be saved.');
	if(fRet) {
		document.location.href = newURL;
	}
}

