function formnumFind(formname) {

	for (var fndx = 0; fndx < document.forms.length; fndx++) {
		if (document.forms[fndx].name == formname) {
			return(document.forms[fndx]);
		}
	}
	return null;
}

/* return a pipe delimited string from given string and delimiter */
function parsePipe(instr, delimvalue) {
	var parsedline = "";
	var andx = 0;    /* array index */
	var ondx = 0;

	for (ondx = 0; ondx < instr.length; ondx++) {
		if (instr.charAt(ondx) == '\n') {
			parsedline += "|";
		} else if (instr.charAt(ondx) != '\r' && instr.charAt(ondx) != ' ') {
			parsedline += instr.charAt(ondx);
		}
	}
	return(parsedline);
}

function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}

function chkArg(parg) {
	if (parg == "undefined" || parg == null || parg == "")
		return false;
	else
		return true;
}

function groundAcct () {
var formname;
var trackpage;
var countrycode;
var alerttext;
var skip = false;
var acctconvurl;
var returnurl;

	if (!chkArg(arguments[0]))
		formname = "tracking";
	else
		formname = arguments[0];

	if (!chkArg(arguments[1]))
		trackpage = "AltRefTracking?language=english&cntry_code=us";
	else
		trackpage = arguments[1];

	if (!chkArg(arguments[2])) {
		alerttext = "";
	} else {
		alerttext = arguments[2];
	}

	if (!chkArg(arguments[3])) {
		acctconvurl = "https://www.fedex.com/xref";
	} else {
		acctconvurl = arguments[3];
	}

	if (!chkArg(arguments[4])) {
		returnurl = "https://www.fedex.com/";
	} else {
		returnurl = arguments[4];
	}

        var thisform = formnumFind(formname);
        if (thisform == null)
        {
		skip = true;
        }
/* see if a ground reftype radio button is checked */
        for (var elemndx = 0; elemndx < thisform.elements.length; elemndx++)
        {
                if (thisform.elements[elemndx].name == 'reftype' )
                {
                        var seltype = thisform.elements[elemndx].value;
                        if (seltype == 'ground_reference' || seltype=='ground_po' || seltype=='ground_invoice' || seltype=='ground_package')
                        {
/* we only want to deal with ground requests */
                                break;
                        } else {
				skip = true;
			}
                }
        }
        /* if no reftype found, split */
		/*
                if (thisform.elements[elemndx].name != 'reftype')
                {
                        document.tracking.submit();
                }
		*/
                var accountnumber = thisform.account_number;
		if (accountnumber.value.length == 6 || accountnumber.value.length == 7)
                {
		  value = accountnumber.value;
		  for (n = 0; n < value.length; n++) {
      		    if (!isDigit(value.charAt(n))) {
         	      skip = true;
      		    }
   		  }
		} else {
		  skip = true;
		}
		
/* at this point, everything else needs the account converter */
/*	var faction = "https://wwwtest.dmz.fedex.com/us/accountconverter/"; */

	var faction = acctconvurl;
/*	faction += "us/accountconverter/"; */
	faction += "?ACCOUNT=" + accountnumber.value;
/*
	var returl = "https://";
	returl += "www.fedex.com/";
	returl += "us/tracking/";
	returl += "?cntry_code=us";
	returl += "&action=alttrack";
	returl += "&reftype=" + seltype;
	var parsed_list = parsePipe(thisform.tracknumbers.value, "\n");
	if (parsed_list.length > 0)
		returl += "&tracknumbers=" + parsed_list + "&";
	faction += "&url=" + escape(returl);
	faction += "&appval=return";
*/
	var returl = returnurl;
	returl += trackpage;
	returl += "&reftype=" + seltype;
	var parsed_list = parsePipe(thisform.tracknumbers.value, "\n");
	if (parsed_list.length > 0)
		returl += "&tracknumbers=" + parsed_list + "&";
	faction += "&url=" + escape(returl);
	faction += "&appval=return";

	/*thisform.action = faction;*/
	if (skip) {
		return true;
	} else {
		alert(alerttext);
		document.location.href = faction;
		return false;
	}

}
